(お詫び)丸ごとコピーしたLVM領域を同時にマウントできないか? [Linux(LVM/RAID/Storage)]
すいません。コメント放置してましたごめんなさい、m(__)m
で、コメントを寄せられた方の趣旨に添うかどうか判りませんが、以前書き換えて途中で止まってるエントリーを再度調査してみました。
まず、LVMの領域を一つつくります。
ディスク/dev/sdbにパーティションを2個作りまして…
そこに物理ボリュームをそれぞれ作成
作成した二つの物理ボリュームを1個のボリュームグループに加えます。
で、論理ボリュームを作成します。
マウントポイントを作成してファイルシステムを作成してマウントします。
マウントされた状態を確認してみます。
はい。というわけで、/dev/sdbにはLVMのボリュームが作成されました。
/dev/sdbを、/dev/sdcに丸ごとコピーしてみましょう。
というわけでコピーされました。
sdb1とsdc1、sdb2とsdc2はそれぞれ「全く同じもの」のはずです。
物理ボリュームの情報を確認してみます。
と、おかしなことになってますね。(/dev/hdaのエラーは忘れて!:笑)
この、重複しているUUIDなどのせいでLVMが混乱しているようです。(笑)
これを別々のボリュームにする方法を以下に示します。
手順①:まずアンマウントする
手順②:ボリュームグループを不活性状態にする
手順③:vgimportcloneコマンドでボリュームグループの複製を作成する
手順④:コピー元・コピー先のボリュームグループを活性状態にする
手順⑤:必要に応じて複製したボリュームをマウントするためのマウントポイントを作成する
手順⑥:必要に応じて再度マウントする
手順①:まずアンマウントする
マウントされた状態であればアンマウントします。
LVMがおかしなことになる前に、一刻も早くアンマウントしましょうね。
手順②:ボリュームグループを不活性状態にする
続いて、ボリュームグループを不活性状態にします。vgchangeコマンドを用います。
これで、オリジナル(のはずの)ボリュームグループが不活性状態となりアクセスできなくなります。
手順③:vgimportcloneコマンドでボリュームグループの複製を作成する
vgimportcloneコマンドを使って、重複したボリュームグループ・物理ボリュームの情報を複製・インポートします。
ここでは、/dev/sdb1と/dev/sdb2から、/dev/sdc1と/dev/sdc2をコピーしたので、/dev/sdc1と/dev/sdc2を複製したボリュームグループに移動させることにします。
これで、/dev/sdc1と/dev/sdc2のUUID等の情報が適切に変更され、またvgStorageと同じ属性を持つボリュームグループvgStorage1が複製されます。複製されたボリュームグループの名前は…
Volume group "vgStorage" successfully renamed to "vgStorage1"
という行で確認できます。
では確認してみましょう。
まずはオリジナルのvgStorageから。
ただしく/dev/sdb1と/dev/sdb2とボリュームグループ内に加わっていることが判ります。
では、今複製したvgStorage1も見てみます。
と、無事に複製されているっぽく見えます。
手順④:コピー元・コピー先のボリュームグループを活性状態にする
では、ボリュームグループを両方とも活性状態にしてアクセスできるようにします。
両方とも活性化されました。
手順⑤:必要に応じて複製したボリュームをマウントするためのマウントポイントを作成する
vgStorage1のボリュームをマウントするマウントポイントはまだ無いので、ここでマウントポイントを作成します。
手順⑥:必要に応じて再度マウントする
じゃ、両方ともマウントしてみましょう!!
お?マウントできたかな!?
キタコレ!
でも、もしかしたら「同じものが別々のマウントポイントにマウントされただけ」なんてことも!?
そんな訳で、両方のマウントポイントがそれぞれ別物もであることを確認してみます。
/mnt/local/dataに何か適当なファイルを置いてみて、/mnt/local/data1でそのファイルが表示されなければOKのはず。
レッツトライ!
キターーーーーーー!!!
というわけで、LVMまるっとコピーしたボリュームを両方とも同時にマウントすることに成功しました。
ところで。
「物理ボリュームのUUIDを書き換えたらラクに解決すんじゃね!?」
「お前マジ頭いいな」
と、思うかもしれない。
が、それは痛い目にあうので要注意。(笑)
実際、pvchange -uコマンドで物理ボリュームのUUIDを強制的に書き換えることが出来る。
が、コレをやると物理ボリュームの内容も綺麗に吹き飛んでしまい中のデータが空っぽになってしまうので賢い手ではありませんお。^-^
で、コメントを寄せられた方の趣旨に添うかどうか判りませんが、以前書き換えて途中で止まってるエントリーを再度調査してみました。
まず、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を強制的に書き換えることが出来る。
が、コレをやると物理ボリュームの内容も綺麗に吹き飛んでしまい中のデータが空っぽになってしまうので賢い手ではありませんお。^-^
コメント 0