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より遅くなりました…

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

nodisktypeformattime
1.SATA SSDx2mdadm raid0xfs27分
2.SATA SSDx2zfs raid0zfs29分
3.SAS15k HDDx4mdadm raid0xfs30分(フリーズ多発)
4.SATA SSDx2オンボ raid0xfs31分
5.SAS15k HDDx4zfs raid0zfs35分
6.SAS15k HDDx1singlexfs57分

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

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

 今日のチア農場

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

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