4
5

More than 5 years have passed since last update.

Ubuntu16.04でraid1設定

Last updated at Posted at 2017-07-16

OS:UbuntuでソフトウェアRAIDで対応する必要があり、
RAID1の構成をしたときに、インストール後、起動してこないという現象があった
検証のためのメモ

Mac環境で試すために、VirtualBoxを使うことにします。
OSはUbuntu16.04 Server版を使用します。

参考URL
How To Create RAID Arrays with mdadm on Ubuntu 16.04
LVM(Logical Volume Manager)について
論理ボリュームの管理

環境

VirtualBoxの準備

  • VirtualBoxのインストール
    https://www.virtualbox.org/ からダウンロード

    すでにインストールされているけど、うまく起動できない場合、
    一旦VirtualBoxをuninstallすると解決するかもしれません。
    uninsallしても用意した仮想環境は削除されません。

  • VirtualBoxに仮想環境を準備する

    • raid構成を再現するために仮想HDDを複数設定する
    • インストールする予定のubuntu(ubuntu-16.04.2-server-amd64.iso)を設定する
スクリーンショット 2017-07-14 20.04.14.png スクリーンショット 2017-07-14 20.05.30.png

Ubuntuをインストールする

コンソール画面でfdiskコマンドを使ってパーティション分けをします。
fdiskコマンドを使うためには、「Rescumodeモード」で実行する必要があります。
Mac環境ではコンソール画面へはoption+fn+F2、インストーラ画面へはoption+fn+F1で切り替えれます。
(実機だと、コンソール画面へはALT+F2、インストーラ画面へはALT+F1)

VirtualBoxの切り替えのコツ。(VirtualBoxがアクティブ状態で)
optionを先に押しておいて、fn+F2を同時に押すと割と素直に切り替わってくれました。

[言語選択] 日本語 [メニュ] 一番下のモード(Rescumode)
スクリーンショット 2017-07-14 21.32.57.png スクリーンショット 2017-07-14 21.33.55.png
[インストーラ画面] [コンソール画面]
スクリーンショット 2017-07-15 12.34.29.png コンソール画面に切替できるが
fdiskコマンドはまだない
スクリーンショット 2017-07-15 12.34.55.png
スクリーンショット 2017-07-15 12.35.16.png
スクリーンショット 2017-07-15 12.52.44.pngスクリーンショット 2017-07-15 12.53.06.pngスクリーンショット 2017-07-15 12.53.57.png 日本語選択
スクリーンショット 2017-07-15 13.46.08.png ネットワーク読込が始まるとfdiskコマンドが使えるようになる スクリーンショット 2017-07-15 13.51.06.png
  • HDDの確認
仮想HDD4台認識してくれてる
# ls /dev/sd*
/dev/sda  /dev/sdb  /dev/sdc  /dev/sdd

fdiskコマンドでパーティションを作成する

# fdisk /dev/sda

[Command:p  パーティション情報を表示する]
 Disklabel type:dos   <ー DOSであること確認
[Command:n  新しいパーティションを作成する]
 Select: p (default)
 Partition number: 1 (default)
 First sector: (default)
 Last sector: (default)
[Command:t  パーティション・タイプを変更する]
 Selected partition: 1
 Partision type: fd
[Command:a  ブートの可否を切り替える]
 Selected partition: 1
[Command:w  パーティション情報を書き込んで,終了する]
スクリーンショット 2017-07-15 15.41.10.png
/dev/sda の設定はこんな感じになった。/dev/sdbも同じ設定をする。
スクリーンショット 2017-07-15 16.58.09.png

ソフトウェアRAID設定

2台のHDD(/dev/sda, /dev/sdb) をソフトウェアRAIDとして /dev/md0 に割り当て

mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/sda1 /dev/sdb1 --assume-clean

使用しているコンポーネントデバイスが、bootフラグが有効なパーティションでない場合は、警告が表示される可能性があります。
続行するにはyを入力するのが安全だそうです
スクリーンショット 2017-07-15 18.00.18.png

raid1ができているかを確認。
[UU]となってるので認識している
スクリーンショット 2017-07-15 18.26.37.png

/dev/md0 の設定,gpd/LVM設定

パーティションはmd0p1,md0p2とし、
md0p1はGPT(GUID Partition Table)
md0p2はLVM(Logicl Volume Manager)にする

# fdisk /dev/md0

[Command:g  GUID Partition Tableにする]
[Command:n  新しいパーティションを作成する]
 Select: p (default)
 Partition number: 1 (default)
 First sector: (default)
 Last sector: 1024K
[Command:n  新しいパーティションを作成する]
 Select: p (default)
 Partition number: 2 (default)
 First sector: (default)
 Last sector: (default)
[Command:t  パーティション・タイプを変更する]
 Selected partition: 2
 Partision type: 30
[Command:w  パーティション情報を書き込んで,終了する]
スクリーンショット 2017-07-15 23.09.19.png
/dev/md0 の設定の確認をする。(md0p1,md0p2ができてる)
スクリーンショット 2017-07-15 23.34.24.png

物理ボリュームの作成(LVM設定)

LVMはサイズを変える可能性があるならば入れとくのがいいらしい。

# vgcreate vg0 /dev/md0p2  <ーボリュームグループの作成
# lvcreate -L 4G -n root vg0  <ー論理ボリュームの作成3つにわけてみた
# lvcreate -L 200M -n swap vg0
# lvcreate -l100%FREE -n data vg0 
# lvscan  <ー確認
# lvremove /dev/vg0/data     <ー失敗した時に消した 

スクリーンショット 2017-07-16 0.26.28.png

パーティションの設定が終わったので、
インストーラー画面に戻って続きをする。

手動でディスクのパーティショニング設定

インストーラ画面で「手動」を選択し、コンソーラ画面で設定した
RAID1デバイス、LVM vg0の領域の設定をそれぞれ行います。
(ファイルシステム作成、マウントの作業)

スクリーンショット 2017-07-16 1.03.37.png スクリーンショット 2017-07-16 15.45.35.png
選択項目 利用方法
スクリーンショット 2017-07-16 15.46.45.png
マウントポイント選択
スクリーンショット 2017-07-16 15.47.39.png
名前
スクリーンショット 2017-07-16 16.33.57.png
LVM VG vg0, LV root ext4選択
スクリーンショット 2017-07-16 15.47.23.png
/選択
スクリーンショット 2017-07-16 16.16.37.png
スクリーンショット 2017-07-16 16.20.11.png
LVM VG vg0, LV data ext4選択
スクリーンショット 2017-07-16 15.47.23.png
/srv選択
スクリーンショット 2017-07-16 15.51.30.png
スクリーンショット 2017-07-16 15.52.36.png
LVM VG vg0, LV swap スワップ領域選択
スクリーンショット 2017-07-16 16.28.14.png
自動的にスワップのマウントになった
RAID デバイス0.1 ext2選択
スクリーンショット 2017-07-16 16.36.06.png
/boot選択
スクリーンショット 2017-07-16 16.37.46.png
bootと入力
スクリーンショット 2017-07-16 16.34.20.png
スクリーンショット 2017-07-16 16.40.46.png

設定が終わったら、「パーティショニングの終了とディスク変更の書き込み」を選択
書き込み内容を確認して「はい」選択
スクリーンショット 2017-07-16 17.06.53.pngスクリーンショット 2017-07-16 17.09.34.png
これでシステムインストールが始まります。

終わったら再起動。コンソール画面でならreboot

これで起動はするのですが、
Rescumodeではユーザ登録がないので、あとでユーザ登録をする必要がでてきます。

通常インストーラ画面ではユーザ登録できます。

スクリーンショット 2017-07-15 13.14.14.png
(この画面は[option+2]で表示される。)
通常インストールのメニュ
スクリーンショット 2017-07-16 0.49.47.png ネットワークの設定
スクリーンショット 2017-07-15 13.09.17.pngスクリーンショット 2017-07-15 13.09.48.pngスクリーンショット 2017-07-15 13.10.18.pngスクリーンショット 2017-07-15 13.10.31.pngスクリーンショット 2017-07-15 13.10.56.png ユーザとパスワードのセットアップ
スクリーンショット 2017-07-15 13.27.57.png 時間の設定 Asia/Tokyoなのを確認

障害対応の確認

[対応]片肺になったときに自動的には起動しない理由

ubuntu16.04は mdadam version3.3 がデフォルトらしい
バージョンを3.4にするとなおる
[参考]
https://askubuntu.com/questions/789953/how-to-enable-degraded-raid1-boot-in-16-04lts

 wget http://launchpadlibrarian.net/275652884/mdadm_3.4-4_amd64.deb
 sudo dpkg -i mdadm_3.4-4_amd64.deb

[対応]HDD交換とした場合

  • 新HDD パーティションをわける
 新HDDが認識しているか確認
 $ls /dev/sd*  <-生きてるHDDが/dev/sdaとして、新HDDが/dev/sdb とした場合
 $sudo fdisk -l /dev/sda  <ー 生きているHDDのパーティション情報の確認
 $sudo fdisk /dev/sdb   <ー 初期化 sdaと同じ設定にする
  • 新HDD RAIDデバイスへ組み込む
 現在のraid状況の確認 md0に新HDDはつながっていないことはmd0の並びと[U_]からわかる
 $cat /proc/mdstat
 Personalities:[raid1]・・・・・
 md0:active raid1 sda2[0] 
        ・・・・・・・[U_] 
 md0に組み込む
 $mdadm -a /dev/md0 /dev/sdb2
 再度状況の確認
 $cat /proc/mdstat
 Personalities:[raid1]・・・・・
 md0:active raid1 sda2[0] sdb2[0]   <ー追加されてる 
        ・・・・・・・[UU]   <ーUで認識されてる

もっと複雑な障害対応の時に必要になるかも
参考:
LVMでRAID1の構築、障害対応、他RAIDボリュームの追加

4
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
5