# scsi_id -g -u -s $(udevinfo -q path -n /dev/sda)
SATA_WDC_WD3200BEVT-_WD-WXH0AB949177 <=HDDのシリアル番号が最後に付与されている
# System Disk
BUS=="scsi", KERNEL=="sd[a-z][1-9]", PROGRAM="scsi_id -g -u -s %p", RESULT=="SATA_WDC_WD3200BEVT-_WD-WXH0AB949177", NAME="sda%n"
# fdisk -H 224 -S 56 /dev/sdb
+ | 詳細解説 |
今日のHDDでは記憶容量の増大によって、過去のCHS(シリンダ・ヘッダ・セクタ)による位置指定では問題が出てきた。
高密度化を実現するため、ディスク内側と外側のセクタ数を変化させることになった。(FDなどでは内側も外側も同じセクタ数) これにより、物理的なディスク上の位置とCHSの位置が一致しなくなった。そこでOSから見えるCHSを仮想的なものとしてしまい、 OSからアクセスがあるたびに、実際の物理ディスク上の位置に変換するという仕組みが提案された。(これがLBA。) だから"man fdisk"での解説の中に、 ● ヘッダ数は、もちろん物理的なヘッダ数ではなく、パーティションテーブルに使われるヘッド数である。 ● セクタ数は、もちろん物理的なセクタ数ではなく、パーティションテーブルに使われるセクタ数である。 という記載があるのである。 (どんなヘッダ数/セクタ数でパーティションがフォーマットされていても、結局LBAによって変換されてしまうため。) 上のfdiskのオプションはAFTによる速度低下を避けるため、 ● 1トラックあたりのセクタを56(8の倍数)にする。※デフォルトだと"63"で速度低下の原因になる。 ● 1ディスクあたりのヘッダ数を224(セクタ数である56の4倍)にする。 というパラメータでパーティションを作成する意味になる。 (ちなみに、実際のディスク容量に合うようにディスクの仮想シリンダ数が調整される。) <<参考資料>> Linuxのfdisk -l での出力結果のヘッド数、シリンダ数についての質問 LBAについて Advanced Format Technologyについての解説(@ITの記事、とても詳しく判りやすい。) |
コマンド (m でヘルプ): n
コマンドアクションe 拡張 p 基本領域 (1-4)p
領域番号 (1-4): 1
〜
最初と最後のシリンダの指定はデフォルトのまま(1パーティションで使用する)
〜
コマンド (m でヘルプ): t
Selected partition 1
16進数コード (L コマンドでコードリスト表示): fd ←パーティションのシステムタイプをRAIDにする。
コマンド (m でヘルプ): pDisk /dev/sdb: 2000.3 GB, 2000398934016 bytes 224 heads, 56 sectors/track, 311465 cylinders Units = シリンダ数 of 12544 * 512 = 6422528 bytes デバイス Boot Start End Blocks Id System /dev/sdb1 1 311465 1953508452 fd Linux raid 自動検出コマンド (m でヘルプ): w領域テーブルは交換されました! ioctl() を呼び出して領域テーブルを再読込みします。 ディスクを同期させます。
# fdisk - l -u /dev/sdbDisk /dev/sdb: 2000.3 GB, 2000398934016 bytes 224 heads, 56 sectors/track, 311465 cylinders, total 3907029168 sectors Units = セクタ数 of 1 * 512 = 512 bytes デバイス Boot Start End Blocks Id System /dev/sdb1 56 3907016959 1953508452 fd Linux raid 自動検出
# scsi_id -g -u -s $(udevinfo -q path -n /dev/sdb1)
SATA_WDC_WD20EARS-00_WD-WCAVY2590611 <=HDDのシリアル番号が最後に付与されている
# Data HDD-01
BUS=="scsi", KERNEL=="sd[b-z]1", PROGRAM="scsi_id -g -u -s %p", RESULT=="SATA_WDC_WD20EARS-00_WD-WCAVY2590611", SYMLINK="dhd_01"
# Data HDD-02
BUS=="scsi", KERNEL=="sd[b-z]1", PROGRAM="scsi_id -g -u -s %p", RESULT=="SATA_WDC_WD20EARS-00_WD-WCAVY2604370", SYMLINK="dhd_02"
・・・以下同様にHDD-13まで続く。
# udevtest $(udevinfo -q path -n /dev/sda1)
# start_udev
# udevinfo -q all -n /dev/sdb1
P: /block/sdc/sdb1
N: sdb1
S: disk/by-id/scsi-SATA_WDC_WD20EARS-00_WD-WCAVY2590611-part1
S: disk/by-path/pci-0000:00:1f.2-scsi-2:0:0:0-part1
E: ID_VENDOR=ATA
E: ID_MODEL=WDC_WD20EARS-00S
E: ID_REVISION=80.0
E: ID_SERIAL=SATA_WDC_WD20EARS-00_WD-WCAVY2590611 ※今回はこれを使用している。
E: ID_TYPE=disk
E: ID_BUS=scsi
E: ID_PATH=pci-0000:00:1f.2-scsi-2:0:0:0
# udevinfo -a -p $(udevinfo -q path -n /dev/sdb)
# mdadm --create /dev/md0 --chunk=512 --level=6 --raid-devices=13 /dev/dhd_01 /dev/dhd_02 /dev/dhd_03 /dev/dhd_04 /dev/dhd_05 /dev/dhd_06 /dev/dhd_07 /dev/dhd_08 /dev/dhd_09 /dev/dhd_10 /dev/dhd_11 /dev/dhd_12 /dev/dhd_13
# cat /proc/mdstat
# vim /etc/mdadm.conf
MAILADDR root DEVICE partitions
# mdadm -D --scan >> /etc/mdadm.conf
MAILADDR root DEVICE partitions ARRAY /dev/md0 level=raid6 num-devices=13 UUID=022f87c6:0b798a1e:60166cf0:b618fda3
# mdadm -D /dev/md0
# mdadm /dev/md0 -a /dev/sdw1
# mdadm -G /dev/md0 -n <アクティブにした後の合計のドライブ数。例:10>
# mdadm -D /dev/md0
# yum -y install xfsprogs xfsdump
# mkfs.xfs /dev/md0
# mount -t xfs /dev/md0 /mnt/data
# df --si
Filesystem | Size | Used | Avail | Use% | マウント位置 |
/dev/md0 | xxT | xxM | xxT | 1% | /mnt/data |
/dev/md0 /mnt/data xfs defaults 0 0