Изменения

Перейти к: навигация, поиск

Ceph performance

60 байтов добавлено, 16:48, 27 февраля 2020
Нет описания правки
== Quick insight into SSD and flash memory organization ==
Although The distinctive feature of NAND flash memory allows fast random writes is that you can write it in small blocks (usually 512 to 4096 bytes), its distinctive feature is that every but erase only big block groups at once, and you must be erased erase any block before being written tooverwriting it. But Write unit is called "page", erase unit is called "block". Actual NAND chips have 16 KB pages and 16-24 MB blocks (1024 pages for Micron MLC and 1536 pages for Micron TLC). This is probably because erasing is slow compared to reading and writingwrite, so manufacturers design memory chips so that they always erase but it can be done for a large group lot of blocks at once, as this takes almost the same time as (common sense suggests that erasing one block could take. This group of blocks called «erase unit» is typically 2-4 megabytes in size~1000 times slower than writing). Another distinctive feature is that the total number of erase/program cycles is physically limited — after several thousands cycles (a usual number for MLC memory) the block becomes faulty and stops accepting new writes or even loses the data previously written to it. Denser and cheaper (MLC/TLC/QLC, 2/3/4 bits per cell) memory chips have smaller erase limits, while sparser and more expensive ones (SLC, 1 bit per cell) have bigger limits (up to 100000 rewrites). However, all limits are still finite, so stupidly overwriting the same block would be very slow and would break SSD very rapidly.
But that’s not the case with modern SSDs — even cheap models are very fast and usually very durable. But why? The credit goes to SSD controllers: SSDs contain very smart and powerful controllers, usually with at least 4 cores and 1-2 GHz clock frequency, which means they’re as powerful as mobile phones' processors. All that power is required to make FTL firmware run smoothly. FTL stands for «Flash Translation Layer» and it is the firmware responsible for translating addresses of small blocks into physical addresses on flash memory chips. Every write request is always put into a space freed in advance, and FTL just remembers the new physical location of the data. This makes writes very fast. FTL also defragments free space and moves blocks around to achieve uniform wear across all memory cells. This feature is called Wear Leveling. SSDs also usually have some extra physical space reserved to add even more endurance and to make wear leveling easier; this is called overprovisioning. Pricier server SSDs have a lot of space overprovisioned, for example, Micron 5100 Max has 37,5 % of physical memory reserved (extra 60 % is added to the user-visible capacity).

Навигация