2011年12月25日日曜日

lvmで衝突したばあいどうするか?【どっちかというとtechより】

最初にまとめておくと下記の記事は表題のとおりlvが衝突した場合どうするよ?っていう記事です。
結論としては今回はknopixで処理しましょうでした。

「あぁーマシンが壊れてしまいました。どうしましょう」
この状態はよくあるパターンだと思います。 特に小規模開発とかではコード管理とかしてなくてデータはそこだけとかあったりするんではないでしょうか。

そういうときにHDDは生き残っていたりすると、ほかのマシンにつけかけてほげほげしてやって復旧するパターンは十分に考えられるます。

さて、その際に問題となりそうなのが。「LVM」
デフォルトで名前が一緒ってのはよくありそうな話なので検証ねたとして書きます。


LVMの仕組みはこういうこと。
http://itpro.nikkeibp.co.jp/article/Keyword/20071012/284413/


検証環境は次のとおり。
Virtualbox4.1.8
Centos6 64bit

※欄外
VMを新たに用意しているとcentosは256Mのメモリでは動かないことが判明。 結構メモリを用意してあげないといけないのですね。(サーバーマシンだからもっとあるはずだから問題とはならないだろうけど。というわけで512M)

なんでVMのイメージをコピーするだけじゃないのかというと。
  1. すでにあるマシンからほかのマシンから移動する想定であること。
  2. 確か、UUIDとか割り振られていたはずなので、その辺で問題となるのはいやだ。
の上記二点

さて、インストール中は暇なので、ほかのことをしましょう。

インストールが完了したら、シャットダウンしましょう。
そして、その後にHDDを読み込ませて、、、

luna@localhost:~$ sudo lvscan
  WARNING: Duplicate VG name VolGroup: Existing OHxCUb-IZQk-IAdl-P6Fl-eDtU-21mk-fk6NeK (created here) takes precedence over XMgJf6-if23-XoUB-FY18-L7gp-S00O-kDRONP
  WARNING: Duplicate VG name VolGroup: Existing XMgJf6-if23-XoUB-FY18-L7gp-S00O-kDRONP (created here) takes precedence over OHxCUb-IZQk-IAdl-P6Fl-eDtU-21mk-fk6NeK
  WARNING: Duplicate VG name VolGroup: Existing OHxCUb-IZQk-IAdl-P6Fl-eDtU-21mk-fk6NeK (created here) takes precedence over XMgJf6-if23-XoUB-FY18-L7gp-S00O-kDRONP
  inactive          '/dev/VolGroup/lv_root' [6.54 GiB] inherit
  inactive          '/dev/VolGroup/lv_swap' [992.00 MiB] inherit

がっつりあたっていますね。

なので、LVの名前が当たっているとマウントできないという状況

設定ファイルは以下の状況
/dev/mapper/VolGroup-lv_root /                       ext4    defaults        1 1
UUID=185c3537-f12c-4ba3-94db-3dae768d40e4 /boot                   ext4    defaults        1 2
/dev/mapper/VolGroup-lv_swap swap                    swap    defaults        0 0
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0

あれ?UUID指定してやればいいんじゃね?


衝突している際には何もできないみたいな感じ。 なんで、Knopixでやろうということで。
mountしようとするとエラーはいちゃうので、、、、

lvmをインストールしないといけないみたい。 そして、Knopixはdebian系だったのか。と知る。
上記の手順で無事マウントできました。
lvmscanすれば認識されてそこで/dev/以下にブロックポイントが作成されると。。。。(名称あたってるのか?)
/mnt/hogeとかマウントポイントを作ってあげればOKです。

衝突した際にLV名の変更等を考えていましたが、これなら無理せずに取り出せますね。

キーボード変更について
setxkbmap usとかjpとかで変更
(実はここが一番はまった。)

んで、後は、外部ストレージ(なんでもいいけど)に移動
sudo mount -t smbfs //host/sharename -o username=なんとか マウントポイントとするか。
sshを起動してやればいいのかなと。

いやーknopixさん 色々知らなくてもちゃんと仕事してくれますね。 いいですね。 うほほいですね。

以上。