What we want out of our new fileserver design
We're still in the process of designing our next generation of
fileserver architecture, so I've decided to write down what we want out
of the design.
- good long term storage management,
as we are likely to keep the architecture for at least five years and
probably more.
- we'd like be able to do highly available storage that has no single
point of failure, because we have some filesystems that are crucial
to our entire infrastructure.
- we should be able to add special purpose capacity without huge
expense. While SATA RAID-5 or RAID-6 bulk storage meets our general
needs, we may someday really need some fast RAID-1 storage or the like.
- people (and groups) should be able to incrementally buy chunks of
additional storage for a relatively modest cost, on the order of a few
hundred dollars.
In a sense, charging people for it is an unfair way of allocating
storage, but we have to allocate it somehow and we know that not all
groups want or need the same amount of disk space. Keeping the price
low is necessary so that no one gets frozen out; a professor can always
afford to buy another unit of space if they really need it.
(The cost is a one-time cost for similar reasons.)
- expanding the overall storage pool should be cheap, not expensive.
This implies that both the storage units and the infrastructure
needed to hook a new one up shouldn't cost lots of money.
- groups should be able to buy large amounts of storage with grant
funding.
It turns out that the easiest way to buy storage with grant funding is
to buy commodity servers with disks from a large vendor that is set up
to do the special grant funding dances. This means that we want to be
able to plug general servers into our environment, even if we're not
building our own storage pool out of them.
(Disclaimer: when I saw 'we' here I really mean it. I owe a big debt
to my co-workers for educating me about a lot of the issues involved,
including things like the peculiar constraints of grant funding.)