Thank you for all your replies.
On Mon, 2010-12-13 at 00:04 +0000, Gordan Bobic wrote:
> On 12/12/2010 17:24, Paddy Steed wrote:
> > In a few weeks parts for my new computer will be arriving. The storage
> > will be a 128GB SSD. A few weeks after that I will order three large
> > disks for a RAID array. I understand that BTRFS RAID 5 support will be
> > available shortly. What is the best possible way for me to get the
> > highest performance out of this setup. I know of the option to optimize
> > for SSD's
> 
> BTRFS is hardly the best option for SSDs. I typically use ext4 without a 
> journal on SSDs, or ext2 if that is not available. Journalling causes 
> more writes to hit the disk, which wears out flash faster. Plus, SSDs 
> typically have much slower writes than reads, so avoiding writes is a 
> good thing. AFAIK there is no way to disable journaling on BTRFS.

My write speed is similar to the read speed (OCZ Vertex 128GB) and it
also comes with a waranty that runs out after the drive will be
obsolete. Using up flash cycles is not an issue for me.

> > but wont that affect all the drives in the array, not to
> > mention having the SSD in the raid array will make the usable size much
> > smaller as RAID 5 goes by the smallest disk.
> 
> If you are talking about BTRFS' parity RAID implementation, it is hard 
> to comment in any way on it before it has actually been implemented. 
> Especially if you are looking for something stable for production use, 
> you should probably avoid features that immature.

I would take images until I felt it was stable every day. I spoke to
`cmasion' who has now finished fsck and is working on RAID 5 fully.

> > Is there a way to use it as
> > a cache the works even on power down.
> 
> You want to use the SSD as a _write_ cache? That doesn't sound too 
> sensible at all.

As previously stated, wear is not an issue.

> What you are looking for is hierarchical/tiered storage. I am not aware 
> of existance of such a thing for Linux. BTRFS has no feature for it. You 
> might be able to cobble up a solution that uses aufs or mhddfs (both 
> fuse based) with some cron jobs to shift most recently used files to 
> your SSD, but the fuse overheads will probably limit the usefulness of 
> this approach.
> 
> > My current plan is to have
> > the /tmp directory in RAM on tmpfs
> 
> Ideally, quite a lot should really be on tmpfs, in addition to /tmp and 
> /var/tmp.
> Have a look at my patches here:
> https://bugzilla.redhat.com/show_bug.cgi?id=223722
> 
> My motivation for this was mainly to improve performance on slow flash 
> (when running off a USB stick or an SD card), but it also removes the 
> most write-heavy things off the flash and into RAM. Less flash wear and 
> more speed.
> 
> If you are putting a lot onto tmpfs, you may also want to look at the 
> compcache project which provides a compressed swap RAM disk. Much faster 
> than actual swap - to the point where it actually makes swapping feasible.
> 
> > the /boot directory on a dedicated
> > partition on the SSD along with a 12GB swap partition also on the SSD
> > with the rest of the space (on the SSD) available as a cache.
> 
> Swap on SSD is generally a bad idea. If your machine starts swapping 
> it'll grind to a halt anyway, regardless of whether it's swapping to 
> SSD, and heavy swapping to SSD will just kill the flash prematurely.
> 
> > The three
> > mechanical hard drives will be on a RAID 5 array using BTRFS. Can anyone
> > suggest any improvements to my plan and also how to implement the cache?
> 
> A very "soft" solution using aufs and cron jobs for moving things with 
> the most recent atime to the SSD is probably as good as it's going to 
> get at the moment, but bear in mind that fuse overheads will probably 
> offset any performance benefit you gain from the SSD. You could get 
> clever and instead of just using atime set up inotify logging and put 
> the most frequently (as opposed to most recently) accessed files onto 
> your SSD. This would, in theory, give you more benefit. You also have to 
> bear in mind that the most frequently accessed files will be cached in 
> RAM anyway, so your pre-caching onto SSD is only really going to be 
> relevant when your working set size is considerably bigger than your RAM 
> - at which point your performance is going to take a significant 
> nosedive anyway (especially if you then hit a fuse file system).
> 
> In either case, you should not put the frequently written files onto 
> flash (recent mtime).
> 
> Also note that RAID5 is potentially very slow on writes, especially 
> small writes. It is also unsuitable for arrays over about 4TB (usable) 
> in size for disk reliability reasons.
> 
> Gordan

So, no-one has any idea's on how to implement the cache. Would making it
all swap work, does to OS cache files in swap?

Attachment: signature.asc
Description: This is a digitally signed message part

Reply via email to