SSブログ

(お詫び)丸ごとコピーしたLVM領域を同時にマウントできないか? [Linux(LVM/RAID/Storage)]

 すいません。コメント放置してましたごめんなさい、m(__)m

 で、コメントを寄せられた方の趣旨に添うかどうか判りませんが、以前書き換えて途中で止まってるエントリーを再度調査してみました。

 まず、LVMの領域を一つつくります。
 ディスク/dev/sdbにパーティションを2個作りまして…
[root@nanako ~]# fdisk -l /dev/sdb

Disk /dev/sdb: 8589 MB, 8589934592 bytes
255 heads, 63 sectors/track, 1044 cylinders
Units = シリンダ数 of 16065 * 512 = 8225280 bytes

デバイス Boot      Start         End      Blocks   Id  System
/dev/sdb1               1         522     4192933+  83  Linux
/dev/sdb2             523        1044     4192965   83  Linux


 そこに物理ボリュームをそれぞれ作成
[root@nanako ~]# pvcreate /dev/sdb1
  Physical volume "/dev/sdb1" successfully created
[root@nanako ~]# pvcreate /dev/sdb2
  Physical volume "/dev/sdb2" successfully created


 作成した二つの物理ボリュームを1個のボリュームグループに加えます。
[root@nanako ~]# vgcreate vgStrage /dev/sdb[12]
  Volume group "vgStrage" successfully created


 で、論理ボリュームを作成します。
[root@nanako ~]# lvcreate -l 2046 -n lvData vgStorage
  Logical volume "lvData" created


 マウントポイントを作成してファイルシステムを作成してマウントします。
[root@nanako ~]# mkdir -p /mnt/local/data
[root@nanako ~]# mke2fs -j /dev/vgStorage/lvData
[root@nanako ~]# mount /dev/vgStorage/lvData /mnt/local/data


 マウントされた状態を確認してみます。
[root@nanako ~]# mount
/dev/mapper/VolGroup00-LogVol00 on / type ext3 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
/dev/sda1 on /boot type ext3 (rw)
tmpfs on /dev/shm type tmpfs (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
/dev/mapper/vgStorage-lvData on /mnt/local/data type ext3 (rw)
[root@nanako ~]# df -h
Filesystem          サイズ  使用  残り 使用% マウント位置
/dev/mapper/VolGroup00-LogVol00
                       28G  1.1G   25G   4% /
/dev/sda1              99M   12M   82M  13% /boot
tmpfs                1014M     0 1014M   0% /dev/shm
/dev/mapper/vgStorage-lvData
                      7.9G  147M  7.4G   2% /mnt/local/data


 はい。というわけで、/dev/sdbにはLVMのボリュームが作成されました。

 /dev/sdbを、/dev/sdcに丸ごとコピーしてみましょう。
[root@nanako ~]# dd if=/dev/sdb of=/dev/sdc
16777216+0 records in
16777216+0 records out
8589934592 bytes (8.6 GB) copied, 773.854 seconds, 11.1 MB/s


 というわけでコピーされました。
 sdb1とsdc1、sdb2とsdc2はそれぞれ「全く同じもの」のはずです。
 物理ボリュームの情報を確認してみます。
[root@nanako ~]# pvdisplay /dev/sdb1
  /dev/hda: open failed: メディアが見つかりません
  Found duplicate PV qeHj8CK19irbVD6528Rn5BWR3V6453IL: using /dev/sdc1 not /dev/sdb1
  --- Physical volume ---
  PV Name               /dev/sdc1
  VG Name               vgStorage
  PV Size               4.00 GB / not usable 2.66 MB
  Allocatable           yes (but full)
  PE Size (KByte)       4096
  Total PE              1023
  Free PE               0
  Allocated PE          1023
  PV UUID               qeHj8C-K19i-rbVD-6528-Rn5B-WR3V-6453IL

[root@nanako ~]# pvdisplay /dev/sdc1
  /dev/hda: open failed: メディアが見つかりません
  Found duplicate PV qeHj8CK19irbVD6528Rn5BWR3V6453IL: using /dev/sdb1 not /dev/sdc1
  --- Physical volume ---
  PV Name               /dev/sdb1
  VG Name               vgStorage
  PV Size               4.00 GB / not usable 2.66 MB
  Allocatable           yes (but full)
  PE Size (KByte)       4096
  Total PE              1023
  Free PE               0
  Allocated PE          1023
  PV UUID               qeHj8C-K19i-rbVD-6528-Rn5B-WR3V-6453IL
[root@nanako ~]# vgdisplay -v
    Finding all volume groups
  /dev/hda: open failed: メディアが見つかりません
  Found duplicate PV qeHj8CK19irbVD6528Rn5BWR3V6453IL: using /dev/sdc1 not /dev/sdb1
    Finding volume group "vgStorage"
  --- Volume group ---
  VG Name               vgStorage
  System ID
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  3
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                1
  Open LV               0
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               7.99 GB
  PE Size               4.00 MB
  Total PE              2046
  Alloc PE / Size       2046 / 7.99 GB
  Free  PE / Size       0 / 0
  VG UUID               0sOu0l-Ka3J-jQcv-m4eQ-OU3z-w2Qn-qsTtT8

  --- Logical volume ---
  LV Name                /dev/vgStorage/lvData
  VG Name                vgStorage
  LV UUID                pEjAL9-YYta-9q02-VW4T-GPf3-IhRV-BvOt3g
  LV Write Access        read/write
  LV Status              available
  # open                 0
  LV Size                7.99 GB
  Current LE             2046
  Segments               2
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:2

  --- Physical volumes ---
  PV Name               /dev/sdc1
  PV UUID               qeHj8C-K19i-rbVD-6528-Rn5B-WR3V-6453IL
  PV Status             allocatable
  Total PE / Free PE    1023 / 0

  PV Name               /dev/sdb2
  PV UUID               At1sAz-VIr9-agGc-PxdP-hKL1-BRRF-qFcnK7
  PV Status             allocatable
  Total PE / Free PE    1023 / 0


 と、おかしなことになってますね。(/dev/hdaのエラーは忘れて!:笑)

 この、重複しているUUIDなどのせいでLVMが混乱しているようです。(笑)
 これを別々のボリュームにする方法を以下に示します。

手順①:まずアンマウントする
手順②:ボリュームグループを不活性状態にする
手順③:vgimportcloneコマンドでボリュームグループの複製を作成する
手順④:コピー元・コピー先のボリュームグループを活性状態にする
手順⑤:必要に応じて複製したボリュームをマウントするためのマウントポイントを作成する
手順⑥:必要に応じて再度マウントする


手順①:まずアンマウントする

 マウントされた状態であればアンマウントします。
umount /mnt/local/data

 LVMがおかしなことになる前に、一刻も早くアンマウントしましょうね。


手順②:ボリュームグループを不活性状態にする

 続いて、ボリュームグループを不活性状態にします。vgchangeコマンドを用います。
vgchange -an vgStorage


 これで、オリジナル(のはずの)ボリュームグループが不活性状態となりアクセスできなくなります。


手順③:vgimportcloneコマンドでボリュームグループの複製を作成する

 vgimportcloneコマンドを使って、重複したボリュームグループ・物理ボリュームの情報を複製・インポートします。
 ここでは、/dev/sdb1と/dev/sdb2から、/dev/sdc1と/dev/sdc2をコピーしたので、/dev/sdc1と/dev/sdc2を複製したボリュームグループに移動させることにします。
[root@nanako ~]# vgimportclone /dev/sdc1 /dev/sdc2
  WARNING: Activation disabled. No device-mapper interaction will be attempted.
  Physical volume "/tmp/snap.RzVp2305/vgimport1" changed
  1 physical volume changed / 0 physical volumes not changed
  WARNING: Activation disabled. No device-mapper interaction will be attempted.
  Physical volume "/tmp/snap.RzVp2305/vgimport0" changed
  1 physical volume changed / 0 physical volumes not changed
  WARNING: Activation disabled. No device-mapper interaction will be attempted.
  Volume group "vgStorage" successfully changed
  Volume group "vgStorage" successfully renamed to "vgStorage1"
  Reading all physical volumes.  This may take a while...
  Found volume group "vgStorage1" using metadata type lvm2
  Found volume group "vgStorage" using metadata type lvm2
  Found volume group "VolGroup00" using metadata type lvm2

 これで、/dev/sdc1と/dev/sdc2のUUID等の情報が適切に変更され、またvgStorageと同じ属性を持つボリュームグループvgStorage1が複製されます。複製されたボリュームグループの名前は…

Volume group "vgStorage" successfully renamed to "vgStorage1"

 という行で確認できます。

 では確認してみましょう。
 まずはオリジナルのvgStorageから。
    Finding volume group "vgStorage"
  --- Volume group ---
  VG Name               vgStorage
  System ID
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  10
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                1
  Open LV               0
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               7.99 GB
  PE Size               4.00 MB
  Total PE              2046
  Alloc PE / Size       2046 / 7.99 GB
  Free  PE / Size       0 / 0
  VG UUID               0sOu0l-Ka3J-jQcv-m4eQ-OU3z-w2Qn-qsTtT8

  --- Logical volume ---
  LV Name                /dev/vgStorage/lvData
  VG Name                vgStorage
  LV UUID                pEjAL9-YYta-9q02-VW4T-GPf3-IhRV-BvOt3g
  LV Write Access        read/write
  LV Status              NOT available
  LV Size                7.99 GB
  Current LE             2046
  Segments               2
  Allocation             inherit
  Read ahead sectors     auto

  --- Physical volumes ---
  PV Name               /dev/sdb1
  PV UUID               1r23pR-o5JI-uNC3-TdqB-CgvU-Ss34-717xkj
  PV Status             allocatable
  Total PE / Free PE    1023 / 0

  PV Name               /dev/sdb2
  PV UUID               EBAX8L-00HP-vJO4-0r0r-BSVx-wEQx-WM0q71
  PV Status             allocatable
  Total PE / Free PE    1023 / 0

 ただしく/dev/sdb1と/dev/sdb2とボリュームグループ内に加わっていることが判ります。

 では、今複製したvgStorage1も見てみます。
    Finding volume group "vgStorage1"
  --- Volume group ---
  VG Name               vgStorage1
  System ID
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  14
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                1
  Open LV               0
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               7.99 GB
  PE Size               4.00 MB
  Total PE              2046
  Alloc PE / Size       2046 / 7.99 GB
  Free  PE / Size       0 / 0
  VG UUID               MctxTX-2HJN-iDxr-rLb0-70Sc-0rqg-sTHLuX

  --- Logical volume ---
  LV Name                /dev/vgStorage1/lvData
  VG Name                vgStorage1
  LV UUID                pEjAL9-YYta-9q02-VW4T-GPf3-IhRV-BvOt3g
  LV Write Access        read/write
  LV Status              NOT available
  LV Size                7.99 GB
  Current LE             2046
  Segments               2
  Allocation             inherit
  Read ahead sectors     auto

  --- Physical volumes ---
  PV Name               /dev/sdc1
  PV UUID               mnYhMw-xUiA-I92F-P50s-eCiL-8n3F-zHFMSO
  PV Status             allocatable
  Total PE / Free PE    1023 / 0

  PV Name               /dev/sdc2
  PV UUID               10OpsF-V2W1-Fg7P-ZYnb-gbC0-satd-K809C4
  PV Status             allocatable
  Total PE / Free PE    1023 / 0

 と、無事に複製されているっぽく見えます。


手順④:コピー元・コピー先のボリュームグループを活性状態にする

 では、ボリュームグループを両方とも活性状態にしてアクセスできるようにします。
[root@nanako ~]# vgchange -ay vgStorage
  1 logical volume(s) in volume group "vgStorage" now active
[root@nanako ~]# vgchange -ay vgStorage1
  1 logical volume(s) in volume group "vgStorage1" now active


 両方とも活性化されました。


手順⑤:必要に応じて複製したボリュームをマウントするためのマウントポイントを作成する

 vgStorage1のボリュームをマウントするマウントポイントはまだ無いので、ここでマウントポイントを作成します。
[root@nanako ~]# mkdir -p /mnt/local/data1



手順⑥:必要に応じて再度マウントする

 じゃ、両方ともマウントしてみましょう!!
[root@nanako ~]# mount /dev/vgStorage/lvData /mnt/local/data
[root@nanako ~]# mount /dev/vgStorage1/lvData /mnt/local/data1

 お?マウントできたかな!?

[root@nanako ~]# mount
/dev/mapper/VolGroup00-LogVol00 on / type ext3 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
/dev/sda1 on /boot type ext3 (rw)
tmpfs on /dev/shm type tmpfs (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
/dev/mapper/vgStorage-lvData on /mnt/local/data type ext3 (rw)
/dev/mapper/vgStorage1-lvData on /mnt/local/data1 type ext3 (rw)
[root@nanako ~]# df -h
Filesystem          サイズ  使用  残り 使用% マウント位置
/dev/mapper/VolGroup00-LogVol00
                       28G  1.1G   25G   4% /
/dev/sda1              99M   12M   82M  13% /boot
tmpfs                1014M     0 1014M   0% /dev/shm
/dev/mapper/vgStorage-lvData
                      7.9G  147M  7.4G   2% /mnt/local/data
/dev/mapper/vgStorage1-lvData
                      7.9G  147M  7.4G   2% /mnt/local/data1

 キタコレ!

 でも、もしかしたら「同じものが別々のマウントポイントにマウントされただけ」なんてことも!?
 そんな訳で、両方のマウントポイントがそれぞれ別物もであることを確認してみます。
 /mnt/local/dataに何か適当なファイルを置いてみて、/mnt/local/data1でそのファイルが表示されなければOKのはず。
 レッツトライ!
[root@nanako ~]# date > /mnt/local/data/file
[root@nanako ~]# ls -la /mnt/local/data
合計 28
drwxr-xr-x 3 root root  4096 10月 15 21:14 .
drwxr-xr-x 4 root root  4096 10月 15 21:13 ..
-rw-r--r-- 1 root root    43 10月 15 21:14 file
drwx------ 2 root root 16384 10月 15 20:00 lost+found
[root@nanako ~]# ls -la /mnt/local/data1
合計 24
drwxr-xr-x 3 root root  4096 10月 15 20:00 .
drwxr-xr-x 4 root root  4096 10月 15 21:13 ..
drwx------ 2 root root 16384 10月 15 20:00 lost+found

 キターーーーーーー!!!

 というわけで、LVMまるっとコピーしたボリュームを両方とも同時にマウントすることに成功しました。



 ところで。
 「物理ボリュームのUUIDを書き換えたらラクに解決すんじゃね!?」
 「お前マジ頭いいな」



 と、思うかもしれない。



 が、それは痛い目にあうので要注意。(笑)
 実際、pvchange -uコマンドで物理ボリュームのUUIDを強制的に書き換えることが出来る。
 が、コレをやると物理ボリュームの内容も綺麗に吹き飛んでしまい中のデータが空っぽになってしまうので賢い手ではありませんお。^-^
nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:パソコン・インターネット

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

※ブログオーナーが承認したコメントのみ表示されます。

トラックバック 0

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。