OpenBSDのソフトウェアRAIDで暗号化RAID1を利用する

目次

1. この記事について

OpenBSDでソフトウェアRAIDにより、暗号化されたストレージをRAID1で用意する方法のメモ。

2. RAID1構築手順

例として、sd0,sd1として認識されている2本のHDDでRAID1を組む場合の手順を記載する。 両方に同じ操作をする場合でも sd0 の場合のみをコマンド例として記載する。 また、コマンドは全てrootユーザーによる実行を前提としている。

  1. HDDにランダムデータを書き込んでおく(sd0,sd1両方)
    • dd if=/dev/urandom of=/dev/rsd0c bs=4m
  2. disklabelでRAID用のスライスを用意する(sd0,sd1両方)
    1. disklabel -E sd0
    2. a を入力してEnter
    3. partition to add:a を入力してEnter
    4. offset:0 を入力してEnter
    5. size:* を入力してEnter
    6. FS type:raid を入力してEnter
    7. w を入力してEnter(保存)
    8. q を入力してEnter(disklabelを終了)
  3. bioctl コマンドでRAID1ストレージを作成
    • bioctl -c 1C -l /dev/sd0a,/dev/sd1a softraid0
    • 暗号化に際してパスワードが必要なので入力する
    • 以降の手順では、 sd4 が作成されたものとして記載する
  4. 作成されたRAID1ストレージの先頭 1MB にゼロを書き込む
    • dd if=/dev/zero of=/dev/rsd4c bs=1m count=1
    • man によると先頭にあるメタデータを利用するプログラムがランダムデータを何かと誤認しないようにとのこと
  5. 作成されたRAID1ストレージに disklabelでファイルシステム用のスライスを用意する
    1. disklabel -E sd4
    2. a を入力してEnter
    3. partition to add:a を入力してEnter
    4. offset:0 を入力してEnter
    5. size:* を入力してEnter
    6. FS type:4.2BSD を入力してEnter
    7. w を入力してEnter(保存)
    8. q を入力してEnter(disklabelを終了)
  6. 作成されたRAID1ストレージに newfs コマンドでファイルシステムを作成する
    • sd4 としてRAID1ストレージが作成された場合のコマンド例
    • newfs sd4a
  7. 作成されたファイルシステムを望みのパスに mount する
    • sd4 として作成されたRAID1ストレージを /mnt にマウントする場合のコマンド例
    • mount /dev/sd4a /mnt

3. サーバ再起動時などに再度マウントする手順

  1. bioctl コマンドでRAID1ストレージを再度作成
    • bioctl -c 1C -l /dev/sd0a,/dev/sd1a softraid0
    • 復号に際してパスワードが必要なので入力する
  2. 望みのパスに再度 mount する
    • sd4 として作成されたRAID1ストレージを /mnt にマウントする場合のコマンド例
    • mount /dev/sd4a /mnt