3���Ł@2TB�𒴂���I ATA�f�B�X�N��4K�Z�N�^���Ƃ́H


���莑�L
2010/4/7

�@�O��������sys_membarrier()�ł����A�Ȃ��Ȃ��}�[�W����Ȃ���Ԃ������Ă��܂��B���������c�_���o�s�����Č�̓}�[�W���邾�����Ǝv���Ă���̂ł����A�ǂ���Ingo�͋C�ɓ���Ȃ����l�q�B���Ԃ�I����pAPI���Ղ肪���I���o�ɍ���Ȃ��̂ł��傤�B���‚��uGeneric�Ɏg����悤�Ɂv���Ă����܂�����B

�@Compaction�p�b�`�́A�}�[�W�̈�Ԃ̃l�b�N������kosaki���Ȃ��Ȃ����r���[���Ȃ����͐挎�኱�i�W���āA�}�[�W��������Ői��ł���݂����ł��B

�@���āA�����͋v���Ԃ�Ƀn�[�h�E�F�A�̂��b�ł��B�n�[�h�f�B�X�N�̗e�ʂ�2TiB�i�Ғ��F�e�r�o�C�g�A1024GiB�j�𒴂���̂ƑO�サ�āA4KiB�i�Ғ��F�L�r�o�C�g�A1024bytes�j�Z�N�^�̃n�[�h�f�B�X�N���o���n�߂Ă��܂��B����ɂ‚��ăn�[�h�E�F�A�AWindows�ALinux���ꂼ��̑Ή��󋵂ɂ‚��Ă��`�����悤�Ǝv���܂��B

�@����ł́A�ǂ����B

���������̎n�܂��

�@Western Digital�Ёi���ƗL���ȃn�[�h�f�B�X�N�̃��[�J�[�ł��B�ȉ�WD�ЂƗ����܂��j�̃G���W�j�A�ADaniel Taylor�́u4K disk block and disks larger than 2TiB bugs�v�Ƃ����X���b�h�ŁAWD�Ђ�4K�Z�N�^HDD���i�i��1�j��Linux�ł����‚��̕s��������N�����ƕ񍐂��܂����B

�@�u�܂��A������O�̘b�Ȃ񂾂��ǁA2TiB�ȏ�̃f�B�X�N��Windows XP�Ŏg�����߂ɂ́AMBR�iMaster Boot Record�j��4KiB�_���Z�N�^���g���K�v������񂾂�ˁB�ł����̂悤��USB-HDD��Linux�}�V���ɂ‚Ȃ��ł��F���ł��Ȃ����Ė�肪����񂾁v�uEFI�iExtensible Firmware Interface�j�֌W�ɂ͂����Ƒ傫�Ȗ�肪�����āA���ɑ����̌��ŁA�Z�N�^����512bytes���Ɖ��肵�Ă���悤�Ɍ�����v

�@����ɑ΂���Christoph Hellwig���u��҂�2.6.32�ŏC���ς݂���v�Ƒ����B�O�҂ɂ‚��Ă����΂炭��ɁADaniel���g�̎�ɂ���ďC������܂����B

�@����ƑO�サ��Tejun Heo�́uATA 4 KiB sector issues�v�Ƒ肵����I�Ȃ܂ƂߋL���𓊍e���܂����B����ɉ����Ă��܂��܂ȃh���C�o�c�[���J���҂��A���̎��_�ł�4KiB�Z�N�^�Ή��󋵂�񍐂��A���������c�_�ɂȂ�܂����B�ȉ��A�������Ă��`�����悤�Ǝv���܂��B

�@�Ȃ��A���܂��܂ȏ�񂪒NjL���ꂽ�ŐV�ł��ȉ��̃y�[�W�Ō��J����Ă��܂��B4KiB�Z�N�^HDD���i�̍w�����l���Ă���l�͈�ǂ��Ă����Ƃ�����������܂���B

�y�֘A�����N�z
http://ata.wiki.kernel.org/index.php/ATA_4_KiB_sector_issues

��1�F���i�Ƃ��ẮuAdvanced Format Architecture�v�Ƃ����@�\�����g���Ă���悤�ł��B

HDD�e�ʑ����̗�����

�@�n�[�h�f�B�X�N�̗e�ʂ͂���20�N���炢��100���{���炢�ɑ����܂������A�����I�ȃT�C�Y�͑傫���Ȃ��Ă��܂���i�ނ��댸���Ă��܂��j�B�h���C�u�̑傫�����ς��Ȃ��̂ɗe�ʂ������Ă���Ƃ������Ƃ́A�����I�Ƀv���b�^�̋L�����x���グ�邱�Ƃɂ��e�ʂ𑝂₵�Ă���Ƃ������Ƃł��B����́A1�Z�N�^������̕����T�C�Y�͏������Ȃ�Ƃ������Ƃł���A�Z�N�^�ǂݏ������̓d�C�M����S/N�䂪��������Ƃ������Ƃ��Ӗ����܂��B

�@HDD���[�J�[�͏]���A�w�b�h�̎d�g�݂����P���ēǂݎ�萸�x���グ����A�Z�N�^��ECC��t�����ăG���[�����������肵�āA���̃G���[���ɑΉ����Ă��܂����B�������A��������낻����E�ƁAHDD�ƊE�͔ߖ‚��グ�n�߂Ă���悤�ł��B

�@����ATA�̃Z�N�^�T�C�Y��512bytes�Œ�ł���A�ʏ�A1�Z�N�^�ɂ‚�40bytes��ECC���t������Ă��܂��B����Ŗ�1���̗e�ʃ��X�������܂��i�����40bytes�̃��[�h�C���^�Z�N�^�M���b�v������̂ŁA���ۂɂ�2���̃��X�ɂȂ�܂��j�B���낻��ECC��80bytes�ɑ��₳�Ȃ��Ƃ���ȏ�̍����x���͖����A�Ƃ��������������n�߂Ă��܂����A���v3�����̃��X�͋��e�ł��Ȃ��Ƃ����̂ł��B

�@IDEMA�iThe International Disk Drive Equipment and Materials Association�A��2�j�̎����i��3�j�A����ыK�i����r���̃f�B�X�J�b�V����������ǂނƁA���낢��Ƌ����[���L�q�����‚���܂��B

�@IBM�̎����i��4�j�ɂ��ƁAECC�ɕK�v��byte���̓Z�N�^���Ɛ����͂��Ȃ��̂ŁA���ɃZ�N�^����4096bytes�ɑ��₵�Ă�ECC����100bytes�ŁA512bytes�Z�N�^��40bytesECC�Ɠ����̃G���[�����\�͂����‚��Ƃ��ł��邻���ł��B

�@�܂�����GST�̎����i��5�j�ɂ��ƁA�Z�N�^����512bytes�̏ꍇ�AECC����50bytes���炢�܂ł͑��₵�Ă��A���̕��L�����x���グ���邽�߁A�S�̂Ƃ��đ�e�ʉ��ł��邻���ł��B�������A����ȏ�ECC�𑝂₵�Ă�����قNjL�����x�͏オ��Ȃ��̂ŁA�f�[�^�{ECC�̃g�[�^���̋L�����x�͋t�ɉ������Ă��܂��A�����b�g�͂���܂���B�t�ɂ����ƁA����ȏ��e�ʉ�������������A�w�b�h�Ȃǂ̕ʂ̕����Ŋv�V���s�����A�L�����x���]���ɂ��ăv���b�^�T�C�Y���ʐς��i�����I�Ɂj�傫����������ő�e�ʉ����邵���Ȃ��Ƃ̂��Ƃł��B

�@�c�c�Ƃ����󋵂ł́A�Z�N�^����傫������͖̂��͓I�ȑI�����ł��邱�Ƃ��������肢��������ł��傤�B�Z�N�^����4096bytes�ɂ���΁A�f�[�^�{ECC�{���[�h�C���^�Z�N�^�M���b�v�̑��o�C�g���́A

512�{40�{40��592bytes

����

4096�{100�{40��4236bytes

�ɕύX����܂��B�䗦�ɂ����4236�^�i592�~8�j��0.89�ŁA��11���قNjL���̈悪�҂��܂��B�ŋ߂�HDD�e�ʂ�2TB�����肪�g�����h�̂悤�ł�����A11���͈ӊO�ƕ���Ȃ��ʂł��B

�@�܂������I�ɂ������ECC���𑝂₷�]�n������A����Ȃ��e�ʉ��̗]�n������A�Ƃ������ƂɂȂ�܂��B

��2�Fhttp://www.idema.org/

��3�Fhttp://www.idema.org/_smartsite/modules/local/data_file/show_file.php?cmd=download&data_file_id=1779

��4�Fhttp://www.idema.org/_smartsite/modules/local/data_file/show_file.php?cmd=download&data_file_id=1256

��5�Fhttp://www.idema.org/_smartsite/modules/local/data_file/show_file.php?cmd=download&data_file_id=1259

�\�t�g�E�F�A�݊����ɂ‚���

�@���āA�Z�N�^����傫������̂́AHDD�̃n�[�h�E�F�A�I�ȗv������̗v���ł����B�ł́A���̑傫�����Ȃ�8KiB��16KiB�ł͂Ȃ�4KiB���Ƃ����ƁA����̓\�t�g�E�F�A������̗v���ł��B

�@x86��CPU�A�[�L�e�N�`���ł̓������̃y�[�W�T�C�Y��4KiB�ɂȂ��Ă���AOS�̉��z�L���T�u�V�X�e���͂��ׂ�4KiB�̔{���ŏ������s���Ă��܂��BOS���̃t�@�C���L���b�V����4KiB�P�ʂŊǗ�����Ă���̂ŁA�t�@�C���V�X�e�����猩��ƁA���[�h�^���C�g�͂قڏ��4KiB�̔{���ŗv������܂��B���̂��ߌ���I�ȃt�@�C���V�X�e���iNTFS�AHFS+�Aext[234]�Ȃǁj�́A���\���œK�����邽�߃f�B�X�N��̃f�[�^��4KiB�T�C�Y�̃u���b�N�iNTFS�AHFS�p��ł́u�N���X�^�v�j�ŊǗ����܂��i�t�@�C���V�X�e���쐬���̃I�v�V�����ŕύX�ł��܂����A���ʂ̐l�͂܂��ς��Ȃ��Ǝv���܂��j�B

�@�‚܂�I/O�́A��O�I�ȃP�[�X�������ď��4KiB�̔{���ŏo�邵�A�ǂꂾ�������ȃf�[�^�ł����Ȃ��Ƃ�4KiB�̃f�B�X�N�e�ʂ��g���Ƃ������Ƃł��B����͋t�ɂ����ƁA4KiB�܂ł̓Z�N�^���𑝂₵�Ă�I/O�T�C�Y�͂܂������������A���\�򉻂��e�ʂ̖��ʂ��������Ȃ��Ƃ������Ƃł��B

�@�Ȃ񂾂��ƂĂ������b�ɕ������܂��ˁB�Ƃ��낪�A�������ꂱ��20�N�ȏ���u1�Z�N�^��512bytes�v�ł���Ă��Ă��܂����̂ŁA�R���g���[���A�u���b�W�`�b�v�ABIOS�A�u�[�g�R�[�h�A�h���C�o�A�p�[�e�B�V�����ݒ�c�[���A�f�B�X�N���[�e�B���e�B�ȂǁA����Ƃ����郌�C����512bytes�����肵�Ă��鏈��������A�ȒP�ɕύX�ł����Ԃł͂���܂���B

�@������HDD�ƊE�́A�����Z�N�^����4K�ɕύX���邪�A�\�t�g�E�F�A���猩����_���Z�N�^����512bytes�ɐ����u���AHDD�̃t�@�[���E�F�A�ŃG�~�����[�V��������Ƃ����΍����邱�Ƃɂ��܂����i��6�j�B

�@�����A�h���C�o���uLBA2048����64�Z�N�^���ǂݍ��ށv���Ƃ�v�������Ȃ�΁A�����I�ɂ́u����LBA256����8�����Z�N�^�̓ǂݍ��݁v�ɕϊ�����̂ł��i�Ή��A�v���P�[�V�������œK�����s����悤�ɁA�����Z�N�^�����擾�ł���R�}���h���V�݂���Ă��܂��j�B

�@�������A���\���򉻂��Ȃ��̂́AI/O�̊J�nLBA��I/O���̗�����8�̔{���i4K/512�j�̂Ƃ��݂̂ł��B����ȊO�̏ꍇ�́A�����I��

  1. 4KiB�Z�N�^��ǂݏo��
  2. HDD���̍�ƃ������ŏ�������
  3. 4KiB�Z�N�^���ēx��������

�Ƃ����������s�����ƂɂȂ邽�߁i�ȍ~�����read-modify-write�ƌĂт܂��j�A�ň��̏ꍇ�A���\���������x�ɂȂ��Ă��܂��܂��B

�@����������́A

A. �t�@�C���V�X�e�������I/O�ł́A�t�@�C���V�X�e���̊J�n�ʒu�i���p�[�e�B�V�����J�n�ʒu�j��8�̔{���ɂ���΁A�S�f�[�^��8�̔{���ɂȂ�

B. ����ȊO�́A�t�@�C���V�X�e�����o�R���Ȃ�I/O�𔭍s����A�v���P�[�V�����iDirectIO�g�p�A�v����f�B�X�N���[�e�B���e�B�j�͏����Ȃ̂Ō•ʑΉ����”\

�Ǝv���Ă��܂����B

�@�Ƃ��낪�A����PC�̐��E�ł́AA�̉���͂܂��������藧���Ă��Ȃ������̂ł��B����DOS�p�[�e�B�V�����̃t�H�[�}�b�g�ɂ���܂����BDOS�p�[�e�B�V�����Ƃ�PC�ň�ʓI�Ɏg���Ă���f�B�X�N�̃p�[�e�B�V�����t�H�[�}�b�g�ŁA���̖��̂Ƃ���AMS-DOS�̎���ɍ���܂����B

�@�̂̃n�[�h�f�B�X�N��LBA�iLogical Block Address�j�ł͂Ȃ��ACHS�A�h���b�V���O�i��7�j���̗p���Ă��܂����B���̉e���ŁA���܂ƂȂ��Ă͎���x��̐��񂪂����‚��c���Ă���A����1�‚Ɂu�p�[�e�B�V�������E�̓V�����_���E�Ɉ�v���Ȃ���΂Ȃ�Ȃ��v�Ƃ������񂪂���܂��B�����ɂ����ƁA�p�[�e�B�V�������E���V�����_���E�ł͂Ȃ��ꏊ�ɐݒ肷�邱�Ǝ��̂́A�Ή��c�[����������Ή”\�ł����B�ł�����ł�Windows���u�[�g���Ȃ��̂ŁA�N������Ȃ��Ƃ͂��܂���ł����B

�@�܂�LBA�������ɂ́A�݊����Ɋւ��邳�܂��܂ȃS�^�S�^������A���݂�HDD�̓����\���ɂ�����炸�A�Z�N�^63���V�����_1�‚Ƃ��Ď�舵�����Ƃ��f�t�@�N�g�X�^���_�[�h�ɂȂ��Ă��܂��i��8�j�B�‚܂�ALBA��63�̔{���Ȃ�΃V�����_���E�Ƃ������Ƃł��B����́A�p�[�e�B�V������63�̔{����LBA����n�܂�Ƃ������Ƃ��Ӗ����܂��B

�@������63��8�̔{���ł͂���܂���B���̌��ʁA���Ȃ��Ƃ���1�p�[�e�B�V�����i�J�n�A�h���X��LBA63�j��4KiB���E�ɍ����Ă��炸�A��2�p�[�e�B�V�����ȍ~��8����7�Ƃ������m���ŋ��E������Ȃ��Ƃ������Ƃ����ɂȂ�܂��B����ł́A�قڂ��ׂẴP�[�X��I/O���\���򉻂��Ă��܂��܂��B

�@���ꂪ4KiB�Z�N�^�A���C�����g���ł��B

��6�F������񂱂̕��@�����Ȃ������Z�N�^�p���_���Z�N�^����4KiB�̃h���C�u�����݂��܂��B4KiB�Ή��p�b�`�����e����Ă���Ƃ��������ƁA���Ȃ��Ƃ�WD�Ђ͏��i�����������Ă���悤�ł��B

��7�Fhttp://en.wikipedia.org/wiki/Cylinder_Head_Sector

��8�Fhttp://en.wikipedia.org/wiki/Master_boot_record

1���ł�
1/2

Index
Linux Kernel Watch�@3����
�@2TB�𒴂���I ATA�f�B�X�N��4K�Z�N�^���Ƃ́H
Page 1
�@���������̎n�܂��
�@HDD�e�ʑ����̗�����
�@�\�t�g�E�F�A�݊����ɂ‚���
�@ Page 2
�@�A���C�����g���̃f�B�X�N�x���_����̊�ȉ�
  Linux�̑Ή��󋵂́H

�A�� Linux Kernel Watch


�@Linux Square�t�H�[���� Linux�J�[�l���֘A�L��
�A�ځFLinux Kernel Watch�i�A�ڒ��j
Linux�J�[�l���J���̌���ł͂��܂��܂Ȓ�Ă�c�_�����킳��Ă��܂��B���̒����炢���‚��̃g�s�b�N���s�b�N�A�b�v���Ă��`�����܂�
�A�ځFLinux�t�@�C���V�X�e���Z�p���
�t�@�C���V�X�e���ɂ͂��ꂼ�����������B�{�A�ڂł́A��b�Z�p����e�t�@�C���V�X�e���̓����A�p�t�H�[�}���X�����؂���
���W�F�S�e��������Linux�J�[�l��2.6�m��1�́n
�G���^�[�v���C�Y�����ɍ��V���ꂽ�J�[�l���E�R�A
�‚��ɑS�e�����炩�ɂȂ����J�[�l��2.6�B6���ɐ��������[�X�����\��̎�������ŃJ�[�l���̉��Ǔ_��V�@�\���ڂ����������
���W�F/proc�ɂ��Linux�`���[�j���O�m�O�ҁn
/proc�ŗ�������OS�̏��

Linux�̏�Ԋm�F�⋓���̕ύX�ŏd�v�Ȃ̂�/proc�t�@�C���V�X�e���ł���B/proc�̊T�O��/proc�𗘗p����OS�̏�Ԋm�F���@���������
���W�F���zOS�uUser Mode Linux�v���p�@
Linux��ʼn��z�I��Linux�𓮂���UML�̎d�g�݂���C���X�g�[���^�Ǘ����@��IPv6�ȂǂɑΉ�������J�[�l���\�z�܂ł�O����
Linux�̃J�[�l�������e�i�͏_��ȃV�X�e��
�J�[�l�������e�i�����R�~���j�e�B��IA-64 Linux
IA-64 Linux�̃J�[�l�������e�i�ł���Bjorn Helgaas���B������Linux�J�[�l���̊J���̐��Ȃǂɂ‚��Ďf����

MONOist�g�ݍ��݊J���t�H�[�����̒�����ALinux�֘A�L�����Љ�܂�


Linux �� OSS �t�H�[���� �V���L��
��IT���[���}�K�W���@�V������X�^�b�t�̃R���������[���œ͂��܂��i�����j

���ڂ̃e�[�}

Linux �� OSS �L�������L���O

�{�� ����