2022/05/20(金)Dell S150 に Software RAID で Ubuntu 22.04 をインストール

Dell PowerEdgeサーバに乗っているなんちゃってRAIDコントーラーS150を使用した状態で、Ubuntu Desktop 22.04をインストールしたメモ。

S150とは

よくあるBIOSでRAID化するだけの、実質ソフトウェアRAIDです。S150はLinuxのRAIDに対応しており、BIOSからLinuxで作成したRAID情報を参照できるようです。

つまりRAID化した状態でLinuxをインストールすることができれば、そのRAID化されたディスクから起動することも可能です。

Ubuntu Desktop 22.04のインストール

ミラーリング(RAID1)に設定する場合。

  1. BIOSの設定からSATAのモードを「AHCI」から「RAID」に切り替えます。
  2. Ubuntu Desktop 22.04をインストールイメージから起動します。
  3. インストールではなく「Ubuntuを試用する」を選択します。
  4. Terminalを開き、mdadmをインストールします。
    sudo apt-get install mdadm
    
  5. ディスク全体でRAIDを構築します。
    sudo mdadm --create md0 --level=1 --raid-disk=2 /dev/sda /dev/sdb
    
    /dev/md127 として認識されます。
  6. この状態で、Ubuntuをインストールします。インストール先はディスク全体を削除してインストール(自動選択でmd127)です。md127に2つのパーティションが作られます。
  7. 「grub-install /dev/sda の実行に失敗しました」というメッセージが出たら再起動せずにウィンドウを閉じます。
  8. /targetにRAIDディスクの/(md127p2)がマウントされていますので、ターミナルで以下の操作をします。
    sudo su
    cd /target
    mount --bind /dev dev
    mount --bind /sys sys
    mount --bind /proc proc
    cp /etc/resolve.conf etc/
    chroot .
    mount /boot/efi
    apt install mdadm
    grub-install
    
    これにより /boot/efi に必要なファイルが配置されますが、EFIブートメニューへの登録には失敗します。
  9. EFIブートメニューに項目を登録します。
    efibootmgr -c -d /dev/md127 -p 1 -L "ubuntu" -l '\EFI\ubuntu\shimx64.efi'
    

あとはターミナルを抜けて普通に再起動すれば、RAID状態のディスクからUbuntuが起動します。

メモ

# EFIメニュー登録状態の確認
efibootmgr -v
# EFIメニューの項目削除
efibootmgr -B -b 0001
# Software RAIDの状態確認
cat /proc/mdstat
# /etc/defult/grub
GRUB_RECORDFAIL_TIMEOUT=3
GRUB_DISABLE_SUBMENU=y

カーネルだけ更新

v5.17.9の場合。

wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.17.9/amd64/linux-headers-5.17.9-051709-generic_5.17.9-051709.202205180947_amd64.deb
wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.17.9/amd64/linux-headers-5.17.9-051709_5.17.9-051709.202205180947_all.deb
wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.17.9/amd64/linux-image-unsigned-5.17.9-051709-generic_5.17.9-051709.202205180947_amd64.deb
wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.17.9/amd64/linux-modules-5.17.9-051709-generic_5.17.9-051709.202205180947_amd64.deb
wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.17.9/amd64/linux-modules-iwlwifi-5.17.9-051709-generic_5.17.9-051709.202205180947_amd64.deb

dpgk -i *.deb

2010/05/24(月)Ubuntu 10.04 LTS で NILFS on RAID1 (nilfs2)

LVMが思ったよりも使えなかったのでログ構造ファイルシステム(LFS)と言われるNILFS2を試してみた。

  • 書き込み操作はほぼすべて追記扱い。
  • ファイルシステムレベルでのスナップショット機能(自動/手動)。

導入

LVMを構成していた /dev/md5 をそのままNILFSに割り当てました。

# apt-get install nilfs2-tools
# mkfs -t nilfs2 /dev/md5
# mount -t nilfs2 /dev/md5 /mnt

特に難しいことはありません。

Ubuntu 10.04では起動時にマウントできない

mountall コマンドがファイルタイプ nilfs2 を認識できないので、/etc/init/mountall.conf を改変しました。

script
    . /etc/default/rcS
    [ -f /forcefsck ] && force_fsck="--force-fsck"
    [ "$FSCKFIX" = "yes" ] && fsck_fix="--fsck-fix"

    mountall --daemon $force_fsck $fsck_fix
    mount /home
end script

運用

書き込みをするごとに自動でチェックポイントが生成されます。チェックポイントはデフォルトでは1時間以上経過するとだんだん消されますが、スナップショットとして保存しておくことも可能です。

/etc/nilfs_cleanerd.conf の設定を再度読み込ませるには次のようにします。

# mount -t nilfs2
/dev/md5 on /home type nilfs2 (rw,relatime,gcpid=1008)

で表示される PID にSIGHUPを送ります。

# kill -SIGHUP 1008
チェックポイント一覧
# lscp
チェックポイントの新しい方から5件
# lscp -rn 10
チェックポイントをスナップショットに
# chcp ss 4800
スナップショットをチェックポイントに
# chcp cp 4800
現在の状態をスナップショットとして保存する
# mkcp -s
指定番号のチェックポイントを消す
# rmcp 4300
# rmcp 1..4000

特定のチェックポイントをマウントする場合は、まずチェックポイントNoをスナップショットにします。その後で、

# mount -t nilfs2 -r -o cp=4855 /dev/md5 /mnt

ドキュメントが参考になります。

min_clean_segments/max_clean_segmentsの罠 2019/02/27

いつの間にか、nilfs_cleanerd.confに設定が増えていました。

# Minimum number of clean segments
#   0 = continuous cleaning
# > 0 = pause cleaning until less segments are available
min_clean_segments    10%

# Maximum number of clean segments
max_clean_segments    20%

protection_periodとAND条件らしく、設定時間を経過しても、永遠とログが残り続けてディスクが減ってきていました……。

protection_period
指定秒数経過するまで、チェックポイントを削除せずに保護します。
min_clean_segments
指定した値(容量か%)より空き容量が少なくなるまで、GC(チェックポイントの回収)を停止します。0なら継続GC(無視)。
max_clean_segments
指定した値より空き容量が多い場合、min_clean_segments(上の設定)以下になるまでGCを停止します。0なら継続GC。一度チェックポイントのGCを初めたとき、どこまで回収するかを設定します。max_clean_segmentsに指定した空き容量になった時点でGCを止めるという設定のようです。

容量の許す限りログを残すのはありがたいとも言えますが、ディスクの実際の空き容量をある程度把握(ないしは確保)しておきたい場合には不便です。そんなわけで、昔と同じ動作を期待する場合、min_clean_segments/max_clean_segmentsの両方を0に設定する必要があります。

2009/10/02(金)e-mailがない時代のチェーンメール

古いデータを整理していたら、幸福の手紙のデータが出てきました。友人に届いた実物(手紙)をパソコンで打ち込んだものです。コピー機でコピーにコピーを重ねたのか、一部の文字は判読不能になっていて、読みとるのに非常に苦労した記憶があります。

検索したところ、これを元ネタにしたものは見つかりましたが、元の文章ががどこにもなかったので資料として張っておきます。ファイルのタイムスタンプは1996/08/31でした。
 愛を込めて、全ての物事は必ず実現します。この手紙は、あなたに幸福をもたらす手紙です。元々は、ニューイングランドから始まったものです。この手紙は何度となく世界中を駆けめぐっています。幸福があなたに送られてきたのです。4日以内に、あなたが他の人へ同じ文面の手紙を20通送ることによって、幸福を手にすることができます。お金を送る必要はありません。身近で幸福を手にすることができるのです。これは、冗談ではありません。この繋がりは、南アフリカからの宣教師でベネズエラに行ったアンソニー・ドゥグラウから始まりました。
 この手紙が世界中を駆けめぐるためにも、あなたが幸福を必要としている友達や知り合いに送って、どんなことが起きるのか見てください。数日後、あなたがどんなに信じなかったとしても、「これは本物だ!」と呟くでしょう。真実には を付けることができないのです。また、この手紙は絶対に手元に残さないでください。必ず96時間以内に手放してください。

 そして、次のことを絶対に覚えておいてください。

※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※

 R.A.F(ROYAL AIR FDRCE=英国空軍)の将校は、47万$を手にしています。
 イアン・エリオットは4万$を手にしましたが、この手紙を出さなかったために、すべてを失ってしまいました。
 フィリピンでは、ジョージ・ウエチルがこの手紙の返事を書き忘れたために、妻を亡くしましたが、彼は死ぬまでに775万5000$を手にしています。
 コンスタンチン・ディアスは1953年にこの手紙を受け取りました。彼は、20通を送るようにと命じ、数日後に200万$の宝くじに当選しました。
 会社員のカルロ・ダディッドは96時間以内にこの手紙を送らなかったために、職を失いました。その後、この手紙のことを思い出し20通送ったところ、数日後に以前よりも良い仕事に就くことができました。
 ダレン・フェアチャイルドはこの手紙を受け取っても、信じずに捨ててしまったため、九日後死亡しました。
 1937年この手紙をカリフォルニアのある若い女性が受け取りましたが、ぼろぼろで読めないほどでした。彼女は後に、タイプし直して出そうと思いましたが、うっかり忘れてしまいました。そのため、その後彼女は様々なトラブルに巻き込まれ、高価な車を手放さなくてはいけないようなことまで起きました。手紙が、96時間以上手元に残っていたためです。そこで、彼女は手紙をタイプし直して発送したところ、新しい車を手に入れることができました。

※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※

 これらは本当の話です。
 また、念のためにもう一度言っておきますが、絶対にお金を送ってはいけません。

ST JUDE

2008/05/22(木)Linuxでmdadmを使ったソフトウェアRAIDの構築・管理メモ

Linux(Ubuntu 10.04 LTS Server)で mdadm を使用してソフトウェアRAIDを構築・管理する方法について述べます。特に既に稼働中のLinuxにHDDを追加してあとからRAID1を構築する方法を述べます。

続きを読む