Follow Slashdot blog updates by subscribing to our blog RSS feed

 



Forgot your password?
typodupeerror
×
Data Storage

Long Block Data Standard Finalized 199

An anonymous reader writes "IDEMA has finally released the LBD (Long Block Data) standard. This standard, in work since 2000, increases the length of the data blocks of each sector from 512 bytes to 4,096 bytes. This is an update that has been requested for some time by the hard-drive industry and the development of new drives will start immediately. The new standard offers many advantages — improved reliability and higher transfer rates are the two most obvious. While some manufacturers say the reliability may increase as much as tenfold, the degree of performance improvement to be expected is a bit more elusive. Overall improvements include shorter time to format and more efficient data transfers due to smaller overhead per block during read and write operations."
This discussion has been archived. No new comments can be posted.

Long Block Data Standard Finalized

Comments Filter:
  • by MankyD ( 567984 ) on Tuesday May 01, 2007 @04:27PM (#18947561) Homepage
    How does larger block sizes result in better reliability? Intuitively, I would almost think the opposite, since a single byte corruption means a much larger block is now erroneous. I obviously am missing something though.
    • by silas_moeckel ( 234313 ) <silas AT dsminc-corp DOT com> on Tuesday May 01, 2007 @04:38PM (#18947775) Homepage
      I would think it has to do with the ability to have more bits for ecc type functions. Blocks would need to be terminated somehow so there is a fixed overhead per block. Reducing this overhead by a factor of 8 would leave more room for a larger parity type field and the more bits in there the larger failure that it can detect, fix and relocate. This would all assume they will not use the new space to push up sizing. Course this is all my rather speculative guesswork.
      • So, supposing your speculation is correct, then the longer block size doesn't actually enable better reliability, it just lowers the capacity cost for a given "amount" of reliability. They could build in as much reliability as they cared to with the current block size, but then they would have to decrease the capacity by more than they would have to with a larger block size.
    • Re: (Score:3, Interesting)

      by msauve ( 701917 )
      I don't have access to the actual standard, but would guess that they're really claiming more reliability for the same storage capacity, not more reliable in absolute terms.

      They can take what would have been per-block overhead with smaller sector sizes and reuse that data space for more robust error correcting codes, while maintaining the same capacity.

      But, good question, since in terms of absolute reliability I can't picture anything in the current spec which would prevent private (not visible at the i
      • Re: (Score:3, Insightful)

        by GooberToo ( 74388 )
        I don't have access to the actual standard, but would guess that they're really claiming more reliability for the same storage capacity, not more reliable in absolute terms.

        In the real world this translates into, "more reliability". Reliability has always been relative to dollars spent. This means given the same dollars you are more reliabile. This means, given absolute dollars, you are more reliable.
    • by EmbeddedJanitor ( 597831 ) on Tuesday May 01, 2007 @04:51PM (#18947971)
      If you're working with a certain number of ecc bits per data bit, then the number of corrections you can perform increases with an increased data block size. Oversimplifying, just for explanation here:

      Let's suppose you can fix one error per 512 byte block or 6 errors per 4096 byte block. Intuitively that might seem like a step back because 6/8 is smaller than 1, but that is not so. If you have 512-byte blocks and get two errors in a 512-byte sequence then that block is corrupt. However if instead you're using 4096 byte blocks then a 512-byte sequence within that block can have two errors since we can tolerate up to 6 errors in the whole block.

      Or put another way, consider a 4 k sequence of data, represented by a sequence of digits dependent on the number of errors in each 512 bytes. 00000000 means no errors, 03010000 means 3 errors in the second block and 1 in the fourth block (ie a total of 4 errors in the whole 4096 bytes). With a scheme that can fix only one error per 512 bytes, the block with 3 errors cannot be corrected (because 3 > 1), but in the system which fixes up to 6 errors per 4096, the errors can be fixed because 4 6. This means that the ECC is far more reliable.

      • by Jartan ( 219704 )

        Let's suppose you can fix one error per 512 byte block or 6 errors per 4096 byte block. Intuitively that might seem like a step back because 6/8 is smaller than 1, but that is not so. If you have 512-byte blocks and get two errors in a 512-byte sequence then that block is corrupt. However if instead you're using 4096 byte blocks then a 512-byte sequence within that block can have two errors since we can tolerate up to 6 errors in the whole block.

        Parity data is parity data. It doesn't matter where it's stor

        • Re: (Score:2, Informative)

          by hamanu ( 23005 )
          OK, yes you COULD move the parity dta around but you'd get shitty performance. Hard drives are made so that each sector is independent of another. That makes each sector a seperate codeword on disk. What you are proposing is to introduce dependency between sectors, and that would mean having to read adjacent sectors in order to write a single sector, which means goin through 2 revolution of the disk instead of one.
        • No, every block has to be independently writable. That's why they can't just use 4 Kbyte sectors on the disk and present them as 8 blocks through the ATA interface.
    • the reliability may increase as much as tenfold
      I think ten-fold may be an exaggeration, but I could believe an eight fold increase.
  • Why 4096? (Score:4, Insightful)

    by MBCook ( 132727 ) <foobarsoft@foobarsoft.com> on Tuesday May 01, 2007 @04:27PM (#18947577) Homepage

    Is there a good reason why 4096 was chosen? Is that just an artifact of this being designed in 2000? At this point very few files on the average system would be smaller than this. It seems to me they could have quite safely chosen something like 16k which would have improved things more, future proofed them more, yet still have been small enough as to not waste a tremendous amount of space (like if they chose 512k).

    Why not make it variable, in that each drive can have it's own value (limited to a power of 2, between 512 and say 512k)? That way one drives today could be 4k, with drives in a few years being more without requiring another 7 years for a new standard?

    • Re:Why 4096? (Score:5, Insightful)

      by 42forty-two42 ( 532340 ) <bdonlan@@@gmail...com> on Tuesday May 01, 2007 @04:38PM (#18947771) Homepage Journal
      Operating systems tend to use 4096-byte blocks already, as that's the size of a memory page on x86 and amd64. If you were to require 16kb transfers, then the block cache would have to start allocating contiguous four-page groups for DMA transfers and the like, which could be difficult if memory is fragmented; in comparison, pages are the basic allocation unit for RAM, so 4kb's easy to find.
    • From the press-release:

      Large blocks also provide a clear path for future gains through further increases in block size.

      Seems to imply that the standard does perhaps address variable block sizes.
    • by macshit ( 157376 )
      Is there a good reason why 4096 was chosen? Is that just an artifact of this being designed in 2000? At this point very few files on the average system would be smaller than this.

      Do you actually have any data to back up that assertion? On my system there are tons of small (< 1 KB even) files around; of course lots of large files too, but it's certainly not obvious that your claim is true.

      Morever, even if say the average file was, say, 16KB, using smaller blocks helps reduce wasted space in file tail blo
  • Oh noes! (Score:2, Funny)

    by RingDev ( 879105 )
    All of my 400b files are now going to take up 10 times as much space!!!

    Heh, glad to see this is finally going through!

    -Rick
    • Re: (Score:3, Informative)

      by drinkypoo ( 153816 )
      Actually, they're going to take up eight times as much space... YOU FAIL IT! They will waste 3636b space unused in blocks, however, instead of only 112 bytes, so they'll be wasting over 32 times as much space. But then, won't ReiserFS already store multiple files in a single block in some cases?
      • won't ReiserFS already store multiple files in a single block in some cases?

        Yeah, but when you ask it, it will deny any knowledge of the whereabouts of the file in question.
    • Re: (Score:2, Interesting)

      by wexsessa ( 908890 )
      With some probably minor inconvenience, you could fix that by using a Zipped archive. And someone will likely come up with a low-impact solution based on that.
  • by rambag ( 961763 ) on Tuesday May 01, 2007 @04:31PM (#18947641)
    Yeah why 4092 bytes? Why not 09 F9 11 02 9D 74 E3 5B D8 41 56 C5 63 56 88 C0 bytes? It seems to me to be the best option
    • I would love to see that post as +5 Redundant. We all know 09 F9 11 02 9D 74 E3 5B D8 41 56 C5 63 56 88 C0 is going to be waaaaaay over abused for ever now, but at least that post was a good use of it.

      -Rick
  • It also means more wasted space on a Windows machine where the user wants a block size of say... 512bytes, or OS/2 and eComStation's HPFS that only uses 512bytes to prevent space waste. It doesnt seem like much, but it does add up if you have a lot of files (pr0n, music, data, images, etc).
    • The larger block size is bad if you have a lot of little files, but better if you have fewer large files.
      This will just encourage Microsoft to stop using INI and XML files and to store more settings the in the big REGISTRY...
      • Hopefully it will... but as I put my entire CD collection onto my machine, that will only alleviate MS's part in the wasted space issue... :-(

        Much of the other issues a larger sector size alleviate would also be addressed if MS would revise NTFS so it wouldnt fragment. They know how, as they have access to the HPFS internals (HPFS rarely exceeds 1 or 2% fragmentation). That is something else I dont understand... they have the answers to many complaints about Windows (that being only one of them) and do not

    • ...if you have Windows loaded.
      • :-)

        Only on my gaming machine... my servers are all eComStation, and one or two will become some variant of Linux soon. Problem I will run into is that HPFS (eComStation) has a fixed block size of 512 bytes.

    • by Kjella ( 173770 )
      it does add up if you have a lot of files (pr0n, music, data, images, etc).

      No, it doesn't. it'll be something like 0.1% of a 3.5MB MP3, which is probably saved by having smaller file allocation tables anyway. The only way it could possibly matter is if you have an extreme amount of small files, like say hundreds of megs of source code and even then it's a pittance on a HDD from the last decade.
      • Hmmmm, obviously you never stopped to do the math. Lets say I have 900,000 files (I have partitions with more actually). That is an average of 1,843,200,000 bytes wasted using a 4K block size. Compare that to a 512 byte block size with 230,400,000 bytes wasted.

        Please explain to me how:
        1.8GB
        is not much different than
        230MB

        Or are you claiming that the file allocation table on a 512byte sector drive would be over a gig and a half? Mine is using a whopping 80MB for file tables and extended attributes and r

    • NTFS is actually designed to put small files (smaller than the block size, IIRC) into the directory structure itself instead of wasting a bunch of space required to put them in individual files. So it already takes care of this issue with current drives, and will continue to do so with future drives.

      But, you know, good troll and all.
      • Yes, but you are forgetting three factors...
        1 - Any file that doesnt end on a block size boundary (ie: multiples of 4096) will waste space (ie: a 6144 byte file - which is larger than the block size - wastes 2048 bytes).
        2 - What files nowadays are smaller than 4K? (keep in mind the quantity of files that fit that criteria and read #3)
        3 - The quantity of files is what exasperates the situation. (Quantity x free space at end of last block).

        NTFS does nothing to alleviate this.

        So, I guess my post wasnt a t

  • by QuantumG ( 50515 ) <qg@biodome.org> on Tuesday May 01, 2007 @04:46PM (#18947891) Homepage Journal
    Trying to fit an entire virus into 512 bytes was always a challenge.. but 4096 bytes? That's too easy!
  • by operagost ( 62405 ) on Tuesday May 01, 2007 @04:48PM (#18947929) Homepage Journal
    These kinds of incremental standards are simply not forward-looking! I propose that the data block size be set to a minimum of 2^32 bytes.
  • by Kjella ( 173770 ) on Tuesday May 01, 2007 @05:01PM (#18948155) Homepage
    Did the space for the bootloader just increase to 4096 as well? For those unaware, the BIOS loads just the first sector of the disk into memory, the bootloader takes it from there. It would certainly let them get a lot more resilient, now they only barf if things are not as expected.
  • by snoyberg ( 787126 ) <snoyberg@NoSpAm.users.sourceforge.net> on Tuesday May 01, 2007 @05:16PM (#18948369) Homepage

    I have to disagree with the whole premise here. I know that people always say that longer is better when it comes to hard drives, but I've never had any reliability problems with my smaller one. Not only that, but I've had very fast transfer rates under all sorts of strenuous loads.

    Wait, we're talking about storage devices? Never mind...

  • See the work on ANSI T10 Data Integrity Field, that provides end-to-end error detection. It bumps the standard block size from 512 to 520 bytes.
    • 520-byte sectors were a nice idea back in the day when all RAID arrays used SCSI/FC disks. But these days you have to support SATA and its 512-byte sectors, so you just find somewhere else to store the checksums.
  • blocks and clusters (Score:4, Informative)

    by ceroklis ( 1083863 ) on Tuesday May 01, 2007 @06:43PM (#18949291)
    To all the posters complaining about the loss of space when they will be forced to use 4096 instead of 512 bytes to store their 20 bytes file:

    • The cluster size (unit of disk space allocation for files) need not be equal to the physical block size. It can be a multiple or even a fraction of the physical block size. It is fairly probable that you are already using 4K clusters (or bigger), so this will not change anything. This is for example the case if you have an NTFS filesystem bigger than 2GB.
    • Not all filesystems waste space in this manner. Reiserfs or EXT3 can pack several small files in a "cluster" .
  • It's about effing time!

    512 bytes was good for floppy disks. I think we should have started upping the sector size around the same time as we hit the 528mb 1024-cylinder limit back in the early 90's. Considering that a modern hard drive has anywhere from one-half to two billion sectors, and that's some serious overhead for no reason. Error-correction is "easier" if it's spread over larger blocks. Why ? Because most files are quite large, and corrupting a 512 byte chunk is just as bad as corrupting a 409
  • by /dev/trash ( 182850 ) on Tuesday May 01, 2007 @08:35PM (#18950155) Homepage Journal
    Debian Finally Supports Long Block Data

The opossum is a very sophisticated animal. It doesn't even get up until 5 or 6 PM.

Working...