Linuxで4kセクタのHDDを使ったソフトウェアRAIDの設定方法。


Linuxで4kセクタのHDDを使ったソフトウェアRAIDの設定方法。

既にOSをブートさせるDISKは別に存在している前提での作業。

最初にmdadmをインストール。

sudo apt-get install mdadm

今回はkvmのイメージ用に用意している為、消費電力を下げるために2.5inchのSeagate製 500G HDDを2台手配しました。システム全体の消費電力は、HDDにフルに負荷がかかっているRAID構成時でも32w程度(ワットチェッカーで計測)でした。優秀です。

富士通 格安サーバ(N54L)構成
CPU Intel(R) Pentium(R) CPU G620 @ 2.60GHz(TX100 S3のデフォルトのCPU)
メモリ 4G ECC
起動ディスク(USB) SuperTalent Express ST1 USB3.0対応 フラッシュメモリ 16GB
HDD(録画ファイル) ST500LT012
HDD(KVMイメージ) ST500LT012 2台(RAID)
その他 pt3
SCR3310-NTTCom
消費電力(通常/RAID同期時) 22w/31w
一般的なLinuxのハードウェア構成ですが、Linux自体はUSBメモリにインストールしていおり、更に消費電力を下げる為の各種設定を行っています。その為、各HDDへのアクセスが無いときには低消費電力での運用となる為、特に処理をしていない状態だと22w程度と、やけに消費電力が低いです。HDD3台でPT3搭載でこの消費電力はちょっと自慢です。

RAID1用に使うHDDは2台で下記の通り。

/dev/sdb
/dev/sdc

partedで4kセクタ用にパーティションを作成する。

/dev/sdb、/dev/sdc共に、下記のようにパーティションを作成する。

parted -a optimal /dev/sdb
GNU Parted 2.3
/dev/sdb を使用
GNU Parted へようこそ! コマンド一覧を見るには 'help' と入力してください。
(parted) mklabel gpt
(parted) unit s
(parted) mkpart primary 2048s 100%
(parted) align-check opt 1
1 aligned
(parted) set 1 raid on
(parted) quit
通知: 必要であれば /etc/fstab を更新するのを忘れないようにしてください。

 

fdisk -l /dev/sdb

警告: GPT (GUID パーティションテーブル) が '/dev/sdb' に検出されました! この fdisk ユーティリティは GPT をサポートしません。GNU Parted を使ってください。

Disk /dev/sdb: 500.1 GB, 500107862016 bytes
ヘッド 255, セクタ 63, シリンダ 60801, 合計 976773168 セクタ
Units = セクタ数 of 1 * 512 = 512 バイト
セクタサイズ (論理 / 物理): 512 バイト / 4096 バイト
I/O サイズ (最小 / 推奨): 4096 バイト / 4096 バイト
ディスク識別子: 0x00000000

デバイス ブート      始点        終点     ブロック   Id  システム
/dev/sdb1               1   976773167   488386583+  ee  GPT
パーティション 1 は物理セクタ境界で始まっていません:

chunkサイズの単位はkで、OSを入れるわけではなく、KVMのイメージを格納するのが目的なので、512kで指定する。未指定の場合には64kがデフォルト値となる。

mdadmでRAID1構成を組む

mdadm --create --verbose /dev/md127 --chunk=512 --level=1 --raid-devices=2 /dev/sdb1 /dev/sdc1

RAIDのステータスを確認する。

500Gの2.5inchHDDなので、大体1時間強で初期化が完了するとのこと。

cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md127 : active raid1 sdc1[1] sdb1[0]
      488254272 blocks super 1.2 [2/2] [UU]
      [=>...................]  resync =  7.7% (37934144/488254272) finish=69.5min speed=107893K/sec

unused devices:

ファイルシステムの作成。ext4で作成する。

mkfs.ext4  -m 0 -b 4096 /dev/md1

速度を計測しておく。

hdparm -Tt /dev/md1

fstabにUUID指定でマウントポイントを記載する

/etc/fstabに新しいmd127を記載して、起動時にマウントするようにする為に、UUIDを調べる。

sudo tune2fs -l /dev/md127 | grep UUID
Filesystem UUID:          d9c88fc4-ffdf-45d9-8cb8-7f88325ebd24

 

# 取り合えず、/imagesにマウントするようにしているが、適宜マウントポイントは変更すること。
mkdir /images
vi /etc/fstab

 

# 元々あった部分
UUID=e9ba7772-f22b-4f8b-b006-b4b2a5a6416e /             ext4 relatime,errors=remount-ro 0       1
UUID=5f217639-7c4e-43a2-babc-848f36a8dad4 /video        ext4 relatime,errors=remount-ro 0       1
/dev/shm /tmp tmpfs size=512m 0 0
/dev/shm /var tmpfs size=768m 0 0

# 今回、md127として追加したRAID1のボリューム
UUID=d9c88fc4-ffdf-45d9-8cb8-7f88325ebd24 /images  		ext4    relatime 0       1

 

mkdir /images
vi /etc/fstab

cat /proc/mdstatの結果が完了になるまで待ってから再起動して、マウントできることを確認する。今回、ついうっかりマウントポイントを作成する前に再起動させてしまい、s(skip)を押下して再起動後、ディレクトリを作成し直した。そのようなうっかりミスの場合には、ssh接続のみで起動画面を見れないとはまるので注意。

タグ付けされた , . ブックマークする へのパーマリンク.

コメントを残す

メールアドレスが公開されることはありません。