R710でFusion-io ioDrive Duoをセットアップしてみた
ioDriveは、Fusion-io社のNANDフラッシュメモリ搭載の次世代ストレージです。爆速です。
DellのR710とHPのDL380に導入する機会があったのでメモとして記録します。
使用機器
Dell R710
HP DL380
Fusion-io ioDrive Duo 640GB
使用OS
CentOS6.2
ダウンロード
Fusion-ioのサポートサイトでドライバとファームウェアをダウンロード
https://support.fusionio.com/downloads
(要ユーザ登録)
今回はCentOS6なので以下をダウンロード。
iomemory-vsl-2.3.10.110-1.0.el6.src.rpm fio-common-2.3.10.110-1.0.el6.x86_64.rpm fio-sysvinit-2.3.10.110-1.0.el6.x86_64.rpm fio-util-2.3.10.110-1.0.el6.x86_64.rpm libfio-2.3.10.110-1.0.el6.x86_64.rpm
セットアップ手順
ioDriveが認識されているか確認
# lspci | grep -i fusion 09:00.0 Mass storage controller: Fusion-io ioDimm3 (rev 01) 0a:00.0 Mass storage controller: Fusion-io ioDimm3 (rev 01)
インストールに必要なパッケージ群をインストール。
# yum install kernel-devel-`uname -r` kernel-headers-`uname -r` gcc rsync rpm-build rpm-devel
rpmビルドの実行
# rpmbuild --rebuild iomemory-vsl-2.3.10.110-1.0.el6.src.rpm 伸張ファイルの検査中: /usr/lib/rpm/check-files /root/rpmbuild/BUILDROOT/iomemory-vsl-2.3.10.110-1.0.el6.x86_64 警告: ホスト名を正式なものにできません: hoge-db01 書き込み完了: /root/rpmbuild/RPMS/x86_64/iomemory-vsl-2.6.32-220.17.1.el6.x86_64-2.3.10.110-1.0.el6.x86_64.rpm 書き込み完了: /root/rpmbuild/RPMS/x86_64/iomemory-vsl-config-2.6.32-220.17.1.el6.x86_64-2.3.10.110-1.0.el6.x86_64.rpm 書き込み完了: /root/rpmbuild/RPMS/x86_64/iomemory-vsl-source-2.3.10.110-1.0.el6.x86_64.rpm 実行中(%clean): /bin/sh -e /var/tmp/rpm-tmp.8LTJUQ + umask 022 + cd /root/rpmbuild/BUILD + cd iomemory-vsl-2.3.10.110 + /bin/rm -rf /root/rpmbuild/BUILDROOT/iomemory-vsl-2.3.10.110-1.0.el6.x86_64 + exit 0 実行中(--clean): /bin/sh -e /var/tmp/rpm-tmp.5UoHF3 + umask 022 + cd /root/rpmbuild/BUILD + rm -rf iomemory-vsl-2.3.10.110 + exit 0
作成されたRPMが
/root/rpmbuild/RPMS/x86_64/iomemory-vsl-2.6.32-220.17.1.el6.x86_64-2.3.10.110-1.0.el6.x86_64.rpm
に生成されたのでこれを使用する。
iomemory-vslのインストール
# rpm -ivh /root/rpmbuild/RPMS/x86_64/iomemory-vsl-2.6.32-220.17.1.el6.x86_64-2.3.10.110-1.0.el6.x86_64.rpm 準備中... ########################################### [100%] 1:iomemory-vsl-2.6.32-220########################################### [100%]
ioDrive関連パッケージをインストール
# rpm -ivh fio-common-2.3.10.110-1.0.el6.x86_64.rpm 準備中... ########################################### [100%] 1:fio-common ########################################### [100%] # rpm -ivh fio-util-2.3.10.110-1.0.el6.x86_64.rpm 準備中... ########################################### [100%] 1:fio-util ########################################### [100%] # rpm -ivh fio-sysvinit-2.3.10.110-1.0.el6.x86_64.rpm 準備中... ########################################### [100%] 1:fio-sysvinit ########################################### [100%] # rpm -ivh libfio-2.3.10.110-1.0.el6.x86_64.rpm 準備中... ########################################### [100%] 1:libfio ########################################### [100%]
ここまで完了したら、一旦再起動します
# reboot
ioDriveをデタッチする
※たぶん既にデタッチされている
# fio-detach /dev/fct0 Block device /dev/fct0 already detached. # fio-detach /dev/fct1 Block device /dev/fct1 already detached.
ファームウェアのバージョンアップ
# rpm -ivh fio-firmware-107053-1.0.noarch.rpm # fio-update-iodrive /usr/share/fio/firmware/iodrive_107053.fff Device ID 1 (/dev/fct1) Updating device firmware from 5.0.3.43247 to 5.0.7.107053 Device ID 0 (/dev/fct0) Updating device firmware from 5.0.3.43247 to 5.0.7.107053 WARNING: DO NOT TURN OFF POWER OR RUN ANY IODRIVE UTILITIES WHILE THE FIRMWARE UPDATE IS IN PROGRESS Please wait...this could take a while Progress ------------------------- \ 0: 100% | 1: 100% Results ------------------------- 0: Firmware updated successfully 1: Firmware updated successfully You MUST now reboot this machine before the new firmware will be activated!
もう一度再起動
# reboot
デタッチする
# fio-detach /dev/fct0 Detaching: [====================] (100%) / Error: failed to detach /dev/fct0: device busy. # fio-detach /dev/fct1 Detaching: [====================] (100%) / Error: failed to detach /dev/fct1: device busy.
おや、デタッチに失敗する。。。
調べてみると、速攻で@namikawaさんの記事を発見
Fusion-io ioDrive Duoで"device busy."
同じように対処していきます。
# ls /dev/md* /dev/md127
詳細の確認
mdadm --detail /dev/md127 /dev/md127: Version : 0.90 Creation Time : Fri Mar 4 15:21:16 2011 Raid Level : raid0 Array Size : 629806592 (600.63 GiB 644.92 GB) Raid Devices : 2 Total Devices : 2 Preferred Minor : 127 Persistence : Superblock is persistent Update Time : Fri Mar 4 15:21:16 2011 State : clean Active Devices : 2 Working Devices : 2 Failed Devices : 0 Spare Devices : 0 Chunk Size : 256K UUID : 3881ec19:b929014e:84805ee1:6c74b27d Events : 0.1 Number Major Minor RaidDevice State 0 252 0 0 active sync /dev/fioa 1 252 16 1 active sync /dev/fiob
RAIDをストップさせる
# mdadm --manage /dev/md127 --stop mdadm: stopped /dev/md127
もう一度デタッチしてみる
# fio-detach /dev/fct0 Detaching: [====================] (100%) - # fio-detach /dev/fct1 Detaching: [====================] (100%) -
成功したので、次はフォーマット
# fio-format /dev/fct0 Creating a standard block device of size 322.55GBytes (300.40GiBytes). Using block (sector) size of 512 bytes. WARNING: Formatting will destroy any existing data on the device! Do you wish to continue [y/n]? y Formatting: [====================] (100%) | Format successful. # fio-format /dev/fct1 Creating a standard block device of size 322.55GBytes (300.40GiBytes). Using block (sector) size of 512 bytes. WARNING: Formatting will destroy any existing data on the device! Do you wish to continue [y/n]? y Formatting: [====================] (100%) / Format successful.
アタッチする
# fio-attach /dev/fct0 Device '/dev/fct0' is already attached. fioa # fio-attach /dev/fct1 Device '/dev/fct1' is already attached. fiob
ブロックデバイスが認識されたか確認
# ls /dev/fio* /dev/fioa /dev/fiob
software raidの作成
※ioDrive Duoの場合
# mdadm --create /dev/md0 --level=0 --raid-devices=2 /dev/fioa /dev/fiob mdadm: Defaulting to version 1.2 metadata mdadm: array /dev/md0 started.
再起動後もRAIDが維持されるようにconfの作成
# echo "DEVICE /dev/fioa /dev/fiob" >/etc/mdadm.conf # mdadm --detail --scan >>/etc/mdadm.conf # cat /etc/mdadm.conf DEVICE /dev/fioa /dev/fiob ARRAY /dev/md0 metadata=1.2 name=hoge-db01:0 UUID=97f1c66c:3c12b8d6:1b4d4243:06hogehoge
ファイルシステム作成
# mkfs.xfs -L -f -b size=4096 -i size=512 -l size=64m /dev/md0 log stripe unit (524288 bytes) is too large (maximum is 256KiB) log stripe unit adjusted to 32KiB meta-data=/dev/md0 isize=512 agcount=32, agsize=4921728 blks = sectsz=512 attr=2 data = bsize=4096 blocks=157495296, imaxpct=25 = sunit=128 swidth=256 blks naming =version 2 bsize=4096 ascii-ci=0 log =internal log bsize=4096 blocks=16384, version=2 = sectsz=512 sunit=8 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0
/etc/sysconfig/iomemory-vslの編集
以下を編集
# If ENABLED is not set (non-zero) then iomemory-vsl init script will not be # used. ENABLED=1 #コメント外す #MD_ARRAYS="" MD_ARRAYS="/dev/md0" #MOUNTS="" MOUNTS="/data"
/etc/modprobe.d/iomemory-vsl.confの編集
2行目コメントアウト削除
# To keep ioDrive from auto loading at boot when using udev, uncomment below blacklist iomemory-vsl
マウント先のディレクトリ作成
# mkdir /data
マウントして確認してみる
# mount -t xfs /dev/md0 /data # df -h /dev/md0 601G 34M 601G 1% /data
fstabに1行追加
※vslプロセスがマウントするのでnoautoオプションを指定
※6列目の数字を2にしてしまうと、boot時にfsckが走るため、/dev/md0へのfsckに失敗してOS上がってこなくなるので注意
vim /etc/fstab /dev/md0 /data xfs defaults,noauto,noatime,nobarrier 1 0
再起動
# reboot
確認
# df -h Filesystem Size Used Avail Use% マウント位置 /dev/md0 601G 34M 601G 1% /data