How to change a disk’s block size
With few exceptions, disk drives are set to 512 bytes per block, and operating systems expect disks to be formatted to 512 bytes per block. In fact, some operating systems and/or disk controllers won’t even “see” disks that aren’t formatted to 512 bytes/block. Certain RAID controllers require disks to be formatted to 520 or 528 bytes/block. EMC, and NetApp are two vendors that format their disks to use these extra bytes. (In case you were wondering, they do this in order to increase data integrity, as the extra bytes are used for ECC.
I have gotten a great deal of calls from people who bought used EMC or NetApp gear at a great price on EBAY and were disheartened to find out that their Windows(R) or LINUX(R) computer can’t see the disks.
Conversely, I have gotten calls from people who wanted to get their off-the-shelf Seagate disk to work in an OEM RAID array in order to save a lot of money and not buy the disks that the manufacturer sells.
If you wan’t to get an off-the-shelf disk drive to work in an EMC, NetApp, or one of several other vendors arrays, then forget it. Not only do they use a different block size, but they have special firmware on the disks that you can’t legally obtain.
Use smartmon-ux -capacitybs NewBytesPerBlock to change the block size to what you desire.
Warnings & Caveats
- Once the block size is successfully changed, you need to power cycle the disk drive and use the -format command to complete the operation. You can not use the disk drive until you reformat it.
- RAID subsystem manufacturers have little motivation for allowing end-users to add their own disk drives. This isn’t just for financial reasons, but for data integrity and reliability concerns. Furthermore, RAID subsystem manufacturers invest a significant amount of R&D in having customized drive firmware. As such, even if you take an off-the-shelf disk drive, and change the blocks size and all of the mode page settings to get it to match your RAID vendor’s disk drive, then the RAID engine may still reject the disk.
- SANtools is bound by numerous non-disclosure arrangements and we will not provide any advice relating to how one might reprogram or reformat a disk so you can get it to work in a specific RAID subsystem.
- Let’s say that you have the opposite problem. You purchased used disk drives and it turns out that you can’t format them because they aren’t formatted to 512 bytes/block. You still have risk that the firmware on those disk drives will reject commands to change the block size. It is not uncommon to have disk drives with specialized firmware that prevents you from changing the block size. If the disk rejects the -capacitybs command, then the only way to change the block size is to flash new firmware on the disk drive. (Not just new firmware, but the correct firmware file) As your disk drive firmware isn’t our intellectual property, we are morally and legally prevented from sending anybody firmware.
- The bottom line is that some disk/firmware combinations let you change the block size, and some don’t. If your disk rejects the -capacitybs command, then you must call your drive supplier/vendor, and ask them about getting some firmware that will let you change the block size.
- Changing the block size will also change the usable number of blocks, and destroy all of your data.