I've been studying SSD structure recently. It is complex. More interspersed: On Mon, Apr 18, 2011 at 9:00 AM, Hans de Faber <hans.defaber@gmail.com> wrote:
On 18/04/11 14:55, Hans de Faber wrote:
<snip>
The problem is in theory very simple. An ssd has 512kB eraseblocks.
Yours may. 128KB is "typical", but it is based on the NAND chips on the SSD. You can get NANDs with multiple EB sizes.
The filesystem writes in 4kB blocks.
agreed
If the 4kB filesystemblocks cross (overlay) the eraseblock boundary than always 2 blocks of 512kB must be erased.
very false. Modern SSDs track usage / free at the sub-EB level. Lets call it a SSD-Page. If you send a SSD a group of random 4KB writes, it will often just mark the old SSD-Pages as invalid/unused/etc. and then allocate a single EB and store all those non-contiguous filesystem blocks in it. (Note a EB can't be erased until the full EB is invalid, so this causes EBs to be hanging around with partially valid data, and partially invalid.) So the performance alignment issue is not the EB size at all, it is the SSD-Pagesize. Trouble it, I've found no way to figure out what size that is. Considering many filesystems, including windows NTFS use the 4KB filesystem-blocksize, my "hope" is that SSD manufactures are using 4KB SSD-pagesize.
This is unwanted. Therefore the partition should always start on block (512Bytes) 0 8 16 and so on. Next partition should start on position 0 of the first available eraseblock.
Agree to you conclusion, but I'm not sure how you got there.
In my case I used the opensuse partitioner defaults and created my first partition and copied my OS. It worked fine and very quick. After that I did some study about ssd's and partitioning and saw that my first partition started at block 3, not correct.
If yast-partitioner from opensuse 11.3 created the first partition at sector 3, something is indeed wrong. Either the SSD is reporting something very strange, or there is a bug in either yast, or the libraries it depends on. I suspect its a bug in libpartd, but I'm guessing.
This partitioning is done in version 11.3 in august 2010
The above yast-partitioner logic was worked out in openFate early 2010. It shipped in 11.3 for the first time. I admit to not personally testing it, but I do know it was supposed to be there. Greg -- To unsubscribe, e-mail: opensuse+unsubscribe@opensuse.org For additional commands, e-mail: opensuse+help@opensuse.org