USB drive on server?
John Austin
ja at jaa.org.uk
Fri Oct 26 09:18:04 UTC 2007
> Blocks that have been freed in the filesystem are still static data as far
> as the flash controller is concerned, unless the controller can understand
> the FS metadata. Yes, when they are reallocated by the FS, the controller
> will be able to move that to another free flash block, freeing the old
> block. However, as long as they just sit unused by the FS, they are
> unavailable to the flash controller for wear leveling unless "static" wear
> leveling is used. As I see it, the worst case is where the filesystem has
> touched all the blocks that the controller makes visible and then one
> single-block file (or the superblock) is constantly rewritten in place. The
> controller will only be able to wear level between that block and its
> spare-block pool.
>
> So the question is "how big is the spare-block pool"?
>
> http://www.sandisk.com/Assets/File/OEM/WhitePapersAndBrochures/RS-MMC/WPaperWearLevelv1.0.pdf
> was published by Sandisk 4 years ago. Here's an early paragraph:
>
> "Each memory chip is divided into blocks. A block is an array of memory
> cells organized as
> sectors. The number of blocks and sectors vary from product to product. The
> minimum unit for a
> write or read operation is a page (or sector). The minimum unit for an erase
> operation is a block.
> Physical blocks are logically grouped into zones. For the current
> technology, a typical zone size is
> 4 MB. However, this may change from product to product. Wear leveling is
> done within a zone.
> The current firmware does not spread the wear across the capacity of the
> card. Each zone has
> about 3% additional "spare blocks" beyond what is assigned to meet the
> logical capacity of the
> flash card. This group of blocks is commonly referred to as the "Erase Pool"."
>
> On the other hand, your Corsair PDF talks of a 2GB device having a write
> page size of 2KB, an erase block size of 128KB (64 pages) and a leveling
> management unit of 128MB (1024 blocks). Unfortunately, it does not tell us
> how many spare blocks are in a leveling unit. I'll assume the 3% from
> Sandisk and this gives us about 32 spare blocks.
>
> Next, we have to ask what happens if only one page is changes in the block?
> I'm going to assume the worst case that this causes the whole block to be
> moved to a new block and the old one freed. Corsair states that they use
> SLC technology for 100,000 erase cycle life instead of MLC with 10,000 so I
> will use this assumption. (I have read specifications for other devices for
> 10,000 cycle lifetime so I'd but that the cheaper devices d ouse MLC).
>
> Ok, so assume that the superblock does get rewritten every 30 seconds (I do
> not know this for a fact). The lifetime of the wear management unit
> containing the superblock is 32 * 100000 writes or 3 years. OK, that may be
> ok for you. On the other hand, if the device uses MLC technology, devide by
> 10 and you only get 3.6 months!!
>
> Now it may be that some devices use better algorithms and will give you a
> longer life. (I would expect that a US$5000 "sold-state disk" will have
> implemented things better and would have a much longer life.) On the other
> hand, if you run out to Fry's and buy a $10 1GB USB stick, don't expect it
> to last vey long.
>
> One problem I've seen is that no manufacturer gives you all of the
> information you need. Also, what is true for one device may not be true for
> another.
>
> It seems to me that one way to extend the life is to use ext3 with a large
> "ordered" journal that will spread out the writes to the superblock
> throughout the journal (I assume the superblock is journaled, anyone know
> for sure?). Also, turn off atime on the filesystem.
>
> What we need is a version of JFFS that can be used on an external device.
> Assume that the device does not do wear leveling and do it in the OS.
>
>
Many thanks for your detailed reply.
I am still trying to convince myself that "up market" memory sticks
are not to be relied upon.
If you are correct in the way they work then a lot of
people are going to be disappointed in the useful life of such devices.
Yet Corsair give them a ten year warranty.
I have emailed Corsair and asked some further questions,
but not before ..........
I re-read the wording in
http://www.corsairmemory.com/_faq/FAQ_flash_drive_wear_leveling.pdf
"Corsair's flash drives typically use dynamic wear levelling"
the spec sheet for the CMFUSB2.0-8GBGT states that it used Static wear levelling !!!!
http://corsairmemory.com/_datasheets/CMFUSB2.0-8GBGT.pdf
Do I believe this?
Maybe we have been discussing the wrong thing !!??
John
More information about the fedora-list
mailing list