volume)2017/10/28CentOSLinuxストレージ自宅のファイルサーバのHDDを(一部)冗長化しました。感情がなさすぎて前置きがこれ以上書けない。LVMとはLVMはディスク運用の柔軟性を高める技術です。通常ディスク容量がいっぱいになって別ディスクを追加した場合、これを別パーティションとして作成しなければなりません。Volume)を切り出すという手順を踏むことで、追加した別ディスクを既存のLVにがっちゃんこし、元々のパーティションを単純に増量することができます。volumeとはLVMはLVを書き込むPVを指定することができます。これを応用して、複数のPVに同時に同じ内容を書き込むように指定し、RAID1相当のミラーリングを行うことができます。前提として、MBRではなくGPTであり、BIOSではなくUEFIのマシンであり、ブートローダにgrub2を利用していることとします。以下の3つのコマンドで情報収集します。lvdisplay123以上より、/dev/sdaはこんな構成だとわかりました。コードはフォーマットの仕方のコードネームです。8E00んでsda3のLVMの中身はこんな感じ。ちなみにVG名はclでした。以上を受けて、こんな方針で行くことにしました。/bootと/boot/efiは冗長化しない。同量のパーティションをPVにしてVGを分け、同量のLVを切るうんまぁデータだけ助かればいいよね......。後で/bootと/boot/efiの冗長化方法が分かった時のため、新しいHDDにその領域だけは確保しておきます。新しいHDDのパーティションを切るまずは新しいHDDをPCにつないで起動。/dev/sdbが存在していれば認識されています。ここからパーティションを切っていきます。/dev/sdbをたたき、まずはoでgptテーブルを作成。続いて/dev/sdaとまったく同じ構成になるよう(開始/終了セクタやコードも)に切ります。終わったらwで書き込み。この1番目と2番目のパーティションは使いません。今後/bootと/boot/efiをRAID1化できる目途が立ったときのためにスペースだけ残しておきます。cl/root12345typeについて。raid1とmirrorというtypeがほぼ同じtypeとして存在しますが、raid1は新しいモードです。これを利用するとミラーリング元のLV(sdaのcl/home、cl/root)にLVMのログを残すスペースが必要になります。sdaはめいっぱい使っているため空きはもうありません。sdaのswap分を減らしてcl/homeとcl/rootを拡張する手もありましたが、めんどいので結局ログ分のスペースを新規ディスク(sdb)に別に作成してくれる旧版のmirrorで作りました。ミラーリングには時間かかります。900GBくらいあるcl/homeは4時間くらいかかるため、寝る前に叩いて起きてから確認するほうがよいです。既存のLVの中でもswapはミラーリングの必要がないためしていないです。PVの容量余らせておくのもなんなので、以下のコマンドで第二のswap領域を作成します。0123456これで二つ目のswap領域ができました。そんで最終的にLVM周りはこうなりました。一応データ領域の冗長化だけ完了しました。所感boot周りが何とか冗長化できないか、かなり調べて試行錯誤したけどどうにもうまくいかんくて悔しい。grub2の組み合わせが全然なくてその断片を読み漁ってつなげてもだめでした。今回やったLVMの冗長化を打ち棄てて、最悪OSの再インストールも視野に入れます。ディスク冗長化方式はOSのインストール時に決めておこうね。