ubuntu フリーズ対策

メモリが原因ではありませんでした。

SAS9211-8iに接続しているDiskをtemp1にするとフリーズしますが、マザボSATA直結のDiskをtemp1にすると一切フリーズしないことに気づきました。つまり、SAS9211-8i関連になにか問題がありそうです。切り分けます。

mdadmのRAID0をやめてみる

まず、接続してるディスクを半分に(ケーブル1本抜いた)、そしてmdadmのRAID0をやめてDisk1本をxfsにフォーマットし、madmaxしてみました。

結果、フリーズしませんでした!

temp1: sas15k 300GB
temp2: ramdisk
3472.97sec (0:57:53)

ramdisk使ってるとはいえ、temp1が素のHDDで1時間切ってるのすごいな。

ZFSでRAID0してみる

ubuntu 20.04 LTSはインストール時にZFSを選ぶこともできましたが、選ばなかったので新規でインストールします。
sudo apt update
sudo apt install zfsutils-linux

バージョン確認
zfs --version

とりあえずHDDのデバイス名取得します。
sudo fdisk -l

/dev/sda ST9300453SS
/dev/sdb ST9300453SS
/dev/sdc ST9300453SS
/dev/sdd ST9300453SS
/dev/sde INTEL SSDSC2BX40
/dev/sdf INTEL SSDSC2BX40

こうなりました。とりあえずST9300453SSx4でsas15kという名前でプールを作ってみます。

RAID0でZFSストレージプールを作る
sudo zpool create sas15k /dev/sda /dev/sdb /dev/sdc /dev/sdd

権限がrootになってしまうので、オーナーをuserにします
sudo chown hyperbanana:hyperbanana /sas15k

プール確認
zpool status

ZFSストレージプールのリスト確認
zpool list

自動でマウントされるので手動マウントは必要無し
df -hT | grep zfs

これだと/sas15k に勝手にマウントされてしまいます。それが嫌な場合はプール作成時に-mで明示的にマウントポイントを指定することもできます。
sudo zpool create -m /mnt/sas sas15k /dev/sda /dev/sdb /dev/sdc /dev/sdd

マウントポイント確認
zfs get mountpoint

すでに作成してしまった場合の変更方法はこちら
sudo zfs set mountpoint=/mnt/sas sas15k

別のHDDをプールに追加する場合
sudo zpool add sas15k /dev/sdd

ストレージプール破棄
sudo zpool destroy sas15k

ではsas15kをつかってmadmaxしてみます。

temp1: sas15k x4 RAID0(ZFS)
temp2: ramdisk
2102.33sec (0:35:02)

フリーズしませんでした!!!mdadmが原因だった可能性が大きいですねぇ。でもmdadmのXFSにくらべて5分ほど遅い。

ZFSはmdadmとくらべてとてもかんたんで素晴らしいですね。管理しやすそう。

ついでにIntel S3610 400GBx2もZFSで試す

SAS9211-8iに接続しているわけではないので無関係ですが、ZFSとXFSの比較のためにSATA接続のIntel S3610 400GBもZFSにしてみました。

先程は書くの忘れましたが、mdadmの解除方法から

アンマウント
sudo umount /mnt/s3610

RAIDアレイを解除
sudo mdadm --misc --stop /dev/md127

RAIDアレイを構成するデバイスの superblock を消去
sudo mdadm --misc --zero-superblock /dev/sde1 /dev/sdf1

初期化
sudo fdisk /dev/sde
sudo fdisk /dev/sdf

RAID0でZFSストレージプールを作る(マウントポイント指定)
sudo zpool create -m /mnt/s3610 s3610 /dev/sde /dev/sdf

権限変更
sudo chown hyperbanana:hyperbanana /mnt/s3610

ついでにこのタイミングでsas15kのマウントポイントを/mnt/sasに変更しておきました。

では、ssdでmadmaxしてみます。

temp1: SATA SSDx2 RAID0(ZFS)
temp2: ramdisk
1772.77sec (0:29:33)

mdadm xfsでやってたときは27分だったので2分ほど遅くなりました。

結論:ZFSよりXFSの方がはやい!!!

でもフリーズはいやだし5分くらい誤差だしHDD残り容量もうほぼ無いし、ZFSでHDDをtemp1にする方法を取ろうと思います。

マザボRAIDを試す

ASUS B550-E GAMINGにもRAID機能が搭載されています。ubuntuのソフトウェアRAIDと比べてどう違うか気になったのでやってみます。

本当はSAS HDDでも試したいのですが、SAS9211-8iはITモードでフラッシュしちゃってるので、RAIDが使えるRTモードに変更するのがだるすぎるので、そちらを試す予定はありません…

BIOS上でサクッと設定できました。IntelのときはBIOSとは別にRAID設定画面立ち上げて…とかめんどかった気がしますが、マザボのRAID組むなんて10年以上ぶりかな。

ubuntu立ち上げてみてもアレイが見えません。そういえばオンボRAIDはドライバ入れないとOSすらインストール出来なかったな…AMD配布のドライバはWindows用しかありません。

途方に暮れかけたけどググったらありました。マジで助かる。

sudo add-apt-repository ppa:thopiekar/rcraid
sudo apt-get update
sudo apt-get install rcraid-dkms

これで再起動したら認識しました。
sudo fdisk -l

どうやら /dev/sdi がそうみたい。とりあえずパーティションを作って保存。

XFSでフォーマット
sudo mkfs.xfs -f /dev/sdi1

マウント
sudo mount -t xfs /dev/sdi1 /mnt/s3610

権限変更
sudo chown hyperbanana:hyperbanana /mnt/s3610

ではいざmadmax

temp1: SATA SSDx2 AMD RAIDXpert RAID0(XFS)
temp2: ramdisk
1878.08sec (0:31:18)

ZFSより遅くなりました…

というわけで早い順にすると以下のような結果となりました。

no disk type format time
1. SATA SSDx2 mdadm raid0 xfs 27分
2. SATA SSDx2 zfs raid0 zfs 29分
3. SAS15k HDDx4 mdadm raid0 xfs 30分(フリーズ多発)
4. SATA SSDx2 オンボ raid0 xfs 31分
5. SAS15k HDDx4 zfs raid0 zfs 35分
6. SAS15k HDDx1 single xfs 57分

SAS4台でZFS使用の35分を採用します。
理由①もうHDD残り容量がないので急ぐ必要がない。
理由②SSDを消耗しない。
理由③SASの用途はこれくらいしか思いつかないので使わないのは癪である。

HDDがほしい!もっと安くなって!!!

 今日のチア農場

plot 2252 → 2295 (+43)
XCH 2.31405844 (+0.05292565)

netspaceの増加が停滞してくれて嬉しいよ。