はじめに
ESXi の RDM 機能を使って仮想マシンに HDD を直接マウントして RAID ディスクを作る.
それだけ.
RDM を使った RAID を作る
Raw Disk Mapping
3TB HDD x2 を用意したので,これを使って RAID を構成する.
通常仮想マシンに割り当てるディスクは ESXi のデータストアから適当な容量を切り出して VMDK という形で設定するが,今回は RDM という仕組みを使って仮想マシンに物理ディスクをマウントする.
まずは 2 つの HDD を ESXi に接続して RDM を設定していく.
ESXi の SSH を有効化して SSH 接続し,ディスクのパスを確認する.
# ls -l /vmfs/devices/disks/
-rw------- 1 root root 3000592982016 Aug 11 21:36 t10.ATA_____WDC_WD30EZRZ2D00Z5HB0_________________________WD2DWCC4N4123456
-rw------- 1 root root 3000592982016 Aug 11 21:36 t10.ATA_____WDC_WD30EZRZ2D00Z5HB0_________________________WD2DWCC4N4ABCDEF
vmkfstools コマンドを使って HDD を vmdk として設定する.ここで作成した vmdk を追加ディスクとして仮想マシンに割り当てる事で HDD を直接利用できるようになる.
# vmkfstools -z /vmfs/devices/disks/t10.ATA_____WDC_WD30EZRZ2D00Z5HB0_________________________WD2DWCC4N4ABCDEF /vmfs/volumes/datastore1/RDM/WD_B_3TB-1.vmdk
# vmkfstools -z /vmfs/devices/disks/t10.ATA_____WDC_WD30EZRZ2D00Z5HB0_________________________WD2DWCC4N4123456 /vmfs/volumes/datastore1/RDM/WD_B_3TB-2.vmdk
パーティションを作成する
仮想マシンに割り当てた HDD をフォーマットしていく.仮想マシンは CentOS を想定する.
まずはパーティションの作成を行うが,fdisk は 2TB 以上のパーティションを作成出来ないので ここでは parted を使う.今回利用するディスクでは既に msdos パーティションが設定されていたので gpt に変更する.
ディスクによって多少容量に誤差があるため,ディスク故障時の交換を考えるとパーティションには 100MB 程度マージンを残しておいたほうが良い.
# parted /dev/sdb
GNU Parted 3.1
/dev/sdb を使用
GNU Parted へようこそ! コマンド一覧を見るには 'help' と入力してください。
(parted) print
モデル: ATA WDC WD30EZRZ-00Z (scsi)
ディスク /dev/sdb: 3001GB
セクタサイズ (論理/物理): 512B/4096B
パーティションテーブル: msdos
ディスクフラグ:
番号 開始 終了 サイズ タイプ ファイルシステム フラグ
(parted) mklabel gpt
警告: いま存在している /dev/sdc のディスクラベルは破壊され、このディスクの全データが失われます。続行しますか?
はい(Y)/Yes/いいえ(N)/No? Y
(parted) mkpart primary 0% 3000GB
(parted) print
モデル: ATA WDC WD30EZRZ-00Z (scsi)
ディスク /dev/sdb: 3001GB
セクタサイズ (論理/物理): 512B/4096B
パーティションテーブル: gpt
ディスクフラグ:
番号 開始 終了 サイズ ファイルシステム 名前 フラグ
1 1049kB 3000GB 3000GB xfs primary
(parted) quit
通知: 必要であれば /etc/fstab を更新するのを忘れないようにしてください。
mdadm で RAID を設定する
mdadm コマンドで RAID1 を設定する.ここでは HDD は sdb1,sdc1 として認識されている状態.
# mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sd[bc]1
mdadm: Note: this array has metadata at the start and
may not be suitable as a boot device. If you plan to
store '/boot' on this device please ensure that
your boot-loader understands md/v1.x metadata, or use
--metadata=0.90
Continue creating array? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
設定状態を設定ファイルとして保存しておく.
# mdadm --detail --scan | tee /etc/mdadm.conf
ARRAY /dev/md0 metadata=1.2 name=ds:0 UUID=04e5a23b:197823d1:56719454:9e2abc0c
xfs でフォーマットする.
# mkfs.xfs /dev/md0
あとは /dev/md0 を適当にマウントして使えば OK.
おわりに
やってはみたもののあまり RDM を使う意味はない.
かなり前にやった作業メモを備忘に起こしているのでなんかヌケモレあるかも?
コメント