by shigemk2

当面は技術的なことしか書かない

2015年度の自宅NAS環境 #kernelvm

@m_akihiro

root on dm-cache on lvm on dm-crypt on md(raid1)をnative uefi環境でセットアップしてみた というサブタイ

  • UEFIネイティブなブート環境について
  • bootloaderの冗長化
  • Initramfsまわりについて

はじめに

自宅NASの構成変更したい

  • dm-cryptをつかってディスク全体を暗号化したい
  • 生半可な破壊だとコロンビア号のHDDが復元された事例
  • 復旧しやすく冗長性を確保したディスク構成にしたい
  • bootloader冗長化

構成

  • dm-cacheが有効な領域
  • 安くて速いのがほしい→UEFIをつかってブートできるようにする

Debian Jessie

  • LVM on dm-crypt on MDができるインストーラを持っている
  • UEFIブートのGummibootがDebian jessieからパッケージ入り
  • Linux Kernel Versionが3.16から仕様
  • mdadm version bad block management対応してほしい

https://www.debian.org/releases/jessie/index.ja.html

ふつうにインストーラを走らせても失敗する

手動でGummibootをインストール

Installerのrescue modeからシェルを握る 暗号化ディスクをOpenする LVMのVGを有効化など

Gummiboot

ココ見ると話がはやいよ

https://wiki.archlinux.org/index.php/Gummiboot_%28%E6%97%A5%E6%9C%AC%E8%AA%9E%29

Gummiboot Bootloaderの冗長化

デフォルトだと無理なのでPatchを書く

同様の提案は上がっていたがリジェクトされていた

  • Cyptsetupは/etc/crypttabによりboot時にマウント可能
  • ただしbootのマウントに対してはハックを必要とする
  • keyfileを単に設定だけでは機能しない

DM-CACHE ROOTへのDM-CACHE適用

  • lvmからdm-cacheを扱える
  • man 7 lvmcache参照

Cache用にSSDからLVを用意してcachepoolを作成

dm-cache initramps再構成

先人がやっているやつ

initrampfsにdm-cacheマウントに必要なファイル一式ができる

FUTURE WORK

  • ここまでやるとブートするようになったのだが、実機でうまくいくのか心配
  • UEFIのファームウェアの出来に左右される