テスト環境にさらに新規VHD 10GBを追加してLVMのデータ移行を試してみます。
テスト環境のLVMの状態です。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
[root@host01 ~]# pvscan PV /dev/sdb1 VG vg_host02 lvm2 [9.99 GiB / 0 free] PV /dev/sda2 VG vg_host01 lvm2 [19.51 GiB / 0 free] Total: 2 [29.50 GiB] / in use: 2 [29.50 GiB] / in no VG: 0 [0 ] [root@host01 ~]# vgscan Reading all physical volumes. This may take a while... Found volume group "vg_host02" using metadata type lvm2 Found volume group "vg_host01" using metadata type lvm2 [root@host01 ~]# lvscan ACTIVE '/dev/vg_host02/lv_data' [9.99 GiB] inherit ACTIVE '/dev/vg_host01/lv_root' [9.77 GiB] inherit ACTIVE '/dev/vg_host01/lv_swap' [1.94 GiB] inherit ACTIVE '/dev/vg_host01/lv_var' [7.80 GiB] inherit |
- fdiskで新規HDDの領域設定
- 物理ボリューム(pv)を作成
- 物理ボリュームグループに物理ボリュームを追加
- 物理ボリュームの移動
- 物理ボリュームグループから物理ボリュームの切り離し
- 物理グループの切り離し
3台目のHDDは/dev/sdcとして認識されたので、これをfdiskコマンドでLinux LVMの領域に設定します。今回も/dev/sdcのすべての領域をLVMとして使用します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
[root@host01 ~]# fdisk /dev/sdc デバイスは正常な DOS 領域テーブルも、Sun, SGI や OSF ディスクラベルも 含んでいません 新たに DOS ディスクラベルをディスク識別子 0x6e7b133a で作成します。 あなたが書き込みを決定するまで、変更はメモリ内だけに残します。 その後はもちろん以前の内容は修復不可能になります。 警告: 領域テーブル 4 の不正なフラグ 0x0000 は w(書き込み)によって 正常になります 警告: DOS互換モードは廃止予定です。このモード (コマンド 'c') を止めることを 強く推奨します。 and change display units to sectors (command 'u'). コマンド (m でヘルプ): p ディスク /dev/sdc: 10.7 GB, 10737418240 バイト ヘッド 255, セクタ 63, シリンダ 1305 Units = シリンダ数 of 16065 * 512 = 8225280 バイト セクタサイズ (論理 / 物理): 512 バイト / 512 バイト I/O size (minimum/optimal): 512 bytes / 512 bytes ディスク識別子: 0x6e7b133a デバイス ブート 始点 終点 ブロック Id システム コマンド (m でヘルプ): n コマンドアクション e 拡張 p 基本パーティション (1-4) p パーティション番号 (1-4): 1 最初 シリンダ (1-1305, 初期値 1): 初期値 1 を使います Last シリンダ, +シリンダ数 or +size{K,M,G} (1-1305, 初期値 1305): 初期値 1305 を使います コマンド (m でヘルプ): t 選択した領域 1 16進数コード (L コマンドでコードリスト表示): 8e 領域のシステムタイプを 1 から 8e (Linux LVM) に変更しました コマンド (m でヘルプ): p ディスク /dev/sdc: 10.7 GB, 10737418240 バイト ヘッド 255, セクタ 63, シリンダ 1305 Units = シリンダ数 of 16065 * 512 = 8225280 バイト セクタサイズ (論理 / 物理): 512 バイト / 512 バイト I/O size (minimum/optimal): 512 bytes / 512 bytes ディスク識別子: 0x6e7b133a デバイス ブート 始点 終点 ブロック Id システム /dev/sdc1 1 1305 10482381 8e Linux LVM コマンド (m でヘルプ): w パーティションテーブルは変更されました! ioctl() を呼び出してパーティションテーブルを再読込みします。 ディスクを同期しています。 |
/dev/sdc1に物理ボリューム(pv)を作成します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
[root@host01 ~]# pvcreate /dev/sdc1 Physical volume "/dev/sdc1" successfully created [root@host01 ~]# pvscan PV /dev/sdb1 VG vg_host02 lvm2 [9.99 GiB / 0 free] PV /dev/sda2 VG vg_host01 lvm2 [19.51 GiB / 0 free] PV /dev/sdc1 lvm2 [10.00 GiB] Total: 3 [39.50 GiB] / in use: 2 [29.50 GiB] / in no VG: 1 [10.00 GiB] [root@host01 ~]# pvdisplay --- Physical volume --- PV Name /dev/sdb1 VG Name vg_host02 PV Size 10.00 GiB / not usable 4.70 MiB Allocatable yes (but full) PE Size 4.00 MiB Total PE 2558 Free PE 0 Allocated PE 2558 PV UUID AnMaaZ-kZ1E-sobD-X0Bi-RbR4-ityQ-1AG3kb --- Physical volume --- PV Name /dev/sda2 VG Name vg_host01 PV Size 19.51 GiB / not usable 3.00 MiB Allocatable yes (but full) PE Size 4.00 MiB Total PE 4994 Free PE 0 Allocated PE 4994 PV UUID utpFKT-1UwB-1IoN-ZBjQ-1NXw-beAe-KMRtMX "/dev/sdc1" is a new physical volume of "10.00 GiB" --- NEW Physical volume --- PV Name /dev/sdc1 VG Name PV Size 10.00 GiB Allocatable NO PE Size 0 Total PE 0 Free PE 0 Allocated PE 0 PV UUID npwWTL-XLAb-hMTE-0CPO-kJxe-gO8n-FvOjGg |
物理ボリュームグループ(vg_host02)に物理ボリューム(/dev/sdc1)を追加します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
[root@host01 ~]# vgextend vg_host02 /dev/sdc1 Volume group "vg_host02" successfully extended [root@host01 ~]# pvdisplay --- Physical volume --- PV Name /dev/sdb1 VG Name vg_host02 PV Size 10.00 GiB / not usable 4.70 MiB Allocatable yes (but full) PE Size 4.00 MiB Total PE 2558 Free PE 0 Allocated PE 2558 PV UUID AnMaaZ-kZ1E-sobD-X0Bi-RbR4-ityQ-1AG3kb --- Physical volume --- PV Name /dev/sdc1 VG Name vg_host02 PV Size 10.00 GiB / not usable 4.70 MiB Allocatable yes PE Size 4.00 MiB Total PE 2558 Free PE 2558 Allocated PE 0 PV UUID npwWTL-XLAb-hMTE-0CPO-kJxe-gO8n-FvOjGg --- Physical volume --- PV Name /dev/sda2 VG Name vg_host01 PV Size 19.51 GiB / not usable 3.00 MiB Allocatable yes (but full) PE Size 4.00 MiB Total PE 4994 Free PE 0 Allocated PE 4994 PV UUID utpFKT-1UwB-1IoN-ZBjQ-1NXw-beAe-KMRtMX |
物理ボリュームグループ(vg_host02)に含まれる物理ボリューム/dev/sdb1のデータを/dev/sdc1に移動します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
[root@host01 ~]# pvmove -v /dev/sdb1 Finding volume group "vg_host02" Archiving volume group "vg_host02" metadata (seqno 3). Creating logical volume pvmove0 Moving 2558 extents of logical volume vg_host02/lv_data activation/volume_list configuration setting not defined: Checking only host tags for vg_host02/lv_data Updating volume group metadata Creating vg_host02-pvmove0 Loading vg_host02-pvmove0 table (253:4) Loading vg_host02-lv_data table (253:2) Suspending vg_host02-lv_data (253:2) with device flush activation/volume_list configuration setting not defined: Checking only host tags for vg_host02/pvmove0 Resuming vg_host02-pvmove0 (253:4) Loading vg_host02-pvmove0 table (253:4) Suppressed vg_host02-pvmove0 (253:4) identical table reload. Resuming vg_host02-lv_data (253:2) Creating volume group backup "/etc/lvm/backup/vg_host02" (seqno 4). Checking progress before waiting every 15 seconds /dev/sdb1: Moved: 0.2% /dev/sdb1: Moved: 100.0% Loading vg_host02-lv_data table (253:2) Loading vg_host02-pvmove0 table (253:4) Suspending vg_host02-lv_data (253:2) with device flush Suspending vg_host02-pvmove0 (253:4) with device flush Resuming vg_host02-pvmove0 (253:4) Resuming vg_host02-lv_data (253:2) Removing vg_host02-pvmove0 (253:4) Removing temporary pvmove LV Writing out final volume group after pvmove Creating volume group backup "/etc/lvm/backup/vg_host02" (seqno 6). |
/dev/sdb1が9.99 GiB freeとなり空いています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 |
[root@host01 ~]# pvscan PV /dev/sdb1 VG vg_host02 lvm2 [9.99 GiB / 9.99 GiB free] PV /dev/sdc1 VG vg_host02 lvm2 [9.99 GiB / 0 free] PV /dev/sda2 VG vg_host01 lvm2 [19.51 GiB / 0 free] Total: 3 [39.49 GiB] / in use: 3 [39.49 GiB] / in no VG: 0 [0 ] [root@host01 ~]# pvdisplay --- Physical volume --- PV Name /dev/sdb1 VG Name vg_host02 PV Size 10.00 GiB / not usable 4.70 MiB Allocatable yes PE Size 4.00 MiB Total PE 2558 Free PE 2558 Allocated PE 0 PV UUID AnMaaZ-kZ1E-sobD-X0Bi-RbR4-ityQ-1AG3kb --- Physical volume --- PV Name /dev/sdc1 VG Name vg_host02 PV Size 10.00 GiB / not usable 4.70 MiB Allocatable yes (but full) PE Size 4.00 MiB Total PE 2558 Free PE 0 Allocated PE 2558 PV UUID npwWTL-XLAb-hMTE-0CPO-kJxe-gO8n-FvOjGg --- Physical volume --- PV Name /dev/sda2 VG Name vg_host01 PV Size 19.51 GiB / not usable 3.00 MiB Allocatable yes (but full) PE Size 4.00 MiB Total PE 4994 Free PE 0 Allocated PE 4994 PV UUID utpFKT-1UwB-1IoN-ZBjQ-1NXw-beAe-KMRtMX [root@host01 ~]# vgdisplay --- Volume group --- VG Name vg_host02 System ID Format lvm2 Metadata Areas 2 Metadata Sequence No 6 VG Access read/write VG Status resizable MAX LV 0 Cur LV 1 Open LV 1 Max PV 0 Cur PV 2 Act PV 2 VG Size 19.98 GiB PE Size 4.00 MiB Total PE 5116 Alloc PE / Size 2558 / 9.99 GiB Free PE / Size 2558 / 9.99 GiB VG UUID F2ejb2-cQ9B-yOns-ZDfz-scGr-aSTp-s6nLfY --- Volume group --- VG Name vg_host01 System ID Format lvm2 Metadata Areas 1 Metadata Sequence No 4 VG Access read/write VG Status resizable MAX LV 0 Cur LV 3 Open LV 3 Max PV 0 Cur PV 1 Act PV 1 VG Size 19.51 GiB PE Size 4.00 MiB Total PE 4994 Alloc PE / Size 4994 / 19.51 GiB Free PE / Size 0 / 0 VG UUID xUbe4B-cUqK-IHph-6D7J-cAl1-BJzf-iMyaoD |
物理ボリュームグループ(vg_host02)から物理ボリューム(/dev/sdb1)を切り離します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
[root@host01 ~]# vgreduce -v vg_host02 /dev/sdb1 Finding volume group "vg_host02" Using physical volume(s) on command line Archiving volume group "vg_host02" metadata (seqno 6). Removing "/dev/sdb1" from volume group "vg_host02" Creating volume group backup "/etc/lvm/backup/vg_host02" (seqno 7). Removed "/dev/sdb1" from volume group "vg_host02" [root@host01 ~]# pvscan PV /dev/sdc1 VG vg_host02 lvm2 [9.99 GiB / 0 free] PV /dev/sda2 VG vg_host01 lvm2 [19.51 GiB / 0 free] PV /dev/sdb1 lvm2 [10.00 GiB] Total: 3 [39.50 GiB] / in use: 2 [29.50 GiB] / in no VG: 1 [10.00 GiB] [root@host01 ~]# pvdisplay --- Physical volume --- PV Name /dev/sdc1 VG Name vg_host02 PV Size 10.00 GiB / not usable 4.70 MiB Allocatable yes (but full) PE Size 4.00 MiB Total PE 2558 Free PE 0 Allocated PE 2558 PV UUID npwWTL-XLAb-hMTE-0CPO-kJxe-gO8n-FvOjGg --- Physical volume --- PV Name /dev/sda2 VG Name vg_host01 PV Size 19.51 GiB / not usable 3.00 MiB Allocatable yes (but full) PE Size 4.00 MiB Total PE 4994 Free PE 0 Allocated PE 4994 PV UUID utpFKT-1UwB-1IoN-ZBjQ-1NXw-beAe-KMRtMX "/dev/sdb1" is a new physical volume of "10.00 GiB" --- NEW Physical volume --- PV Name /dev/sdb1 VG Name PV Size 10.00 GiB Allocatable NO PE Size 0 Total PE 0 Free PE 0 Allocated PE 0 PV UUID AnMaaZ-kZ1E-sobD-X0Bi-RbR4-ityQ-1AG3kb |
物理グループ(/dev/sdb1)を切り離します。
1 2 3 4 5 6 7 8 |
[root@host01 ~]# pvremove -v /dev/sdb1 Wiping cache of LVM-capable devices Labels on physical volume "/dev/sdb1" successfully wiped [root@host01 ~]# pvscan PV /dev/sdc1 VG vg_host02 lvm2 [9.99 GiB / 0 free] PV /dev/sda2 VG vg_host01 lvm2 [19.51 GiB / 0 free] Total: 2 [29.50 GiB] / in use: 2 [29.50 GiB] / in no VG: 0 [0 ] |
これでLVMから/dev/sdb1が切り離され、いつでもHDDの取り外しが行えます。
ここまでオンライン(/dataにマウントした状態)のまま作業を行いましたが、エラーもなく無事に終わりました。
安全を期すならオフラインの方がいいのでしょうかね?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 |
[root@host01 ~]# parted -l モデル: VMware, VMware Virtual S (scsi) ディスク /dev/sda: 21.5GB セクタサイズ (論理/物理): 512B/512B パーティションテーブル: msdos 番号 開始 終了 サイズ タイプ ファイルシステム フラグ 1 1049kB 525MB 524MB primary ext4 boot 2 525MB 21.5GB 20.9GB primary lvm モデル: VMware, VMware Virtual S (scsi) ディスク /dev/sdb: 10.7GB セクタサイズ (論理/物理): 512B/512B パーティションテーブル: msdos 番号 開始 終了 サイズ タイプ ファイルシステム フラグ 1 32.3kB 10.7GB 10.7GB primary lvm モデル: VMware, VMware Virtual S (scsi) ディスク /dev/sdc: 10.7GB セクタサイズ (論理/物理): 512B/512B パーティションテーブル: msdos 番号 開始 終了 サイズ タイプ ファイルシステム フラグ 1 32.3kB 10.7GB 10.7GB primary lvm モデル: Linux device-mapper (linear) (dm) ディスク /dev/mapper/vg_host01-lv_var: 8380MB セクタサイズ (論理/物理): 512B/512B パーティションテーブル: loop 番号 開始 終了 サイズ ファイルシステム フラグ 1 0.00B 8380MB 8380MB ext4 モデル: Linux device-mapper (linear) (dm) ディスク /dev/mapper/vg_host02-lv_data: 10.7GB セクタサイズ (論理/物理): 512B/512B パーティションテーブル: loop 番号 開始 終了 サイズ ファイルシステム フラグ 1 0.00B 10.7GB 10.7GB ext4 モデル: Linux device-mapper (linear) (dm) ディスク /dev/mapper/vg_host01-lv_swap: 2080MB セクタサイズ (論理/物理): 512B/512B パーティションテーブル: loop 番号 開始 終了 サイズ ファイルシステム フラグ 1 0.00B 2080MB 2080MB linux-swap(v1) モデル: Linux device-mapper (linear) (dm) ディスク /dev/mapper/vg_host01-lv_root: 10.5GB セクタサイズ (論理/物理): 512B/512B パーティションテーブル: loop 番号 開始 終了 サイズ ファイルシステム フラグ 1 0.00B 10.5GB 10.5GB ext4 [root@host01 ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/vg_host01-lv_root 9.7G 3.3G 6.0G 36% / tmpfs 491M 0 491M 0% /dev/shm /dev/sda1 485M 34M 426M 8% /boot /dev/mapper/vg_host01-lv_var 7.7G 230M 7.1G 4% /var /dev/mapper/vg_host02-lv_data 9.9G 151M 9.2G 2% /data |
さて、テストマシンの電源をOFFにしてHDD(/dev/sdb)を外しました。
その後、無事に起動してきました。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 |
[root@host01 ~]# parted -l モデル: VMware, VMware Virtual S (scsi) ディスク /dev/sda: 21.5GB セクタサイズ (論理/物理): 512B/512B パーティションテーブル: msdos 番号 開始 終了 サイズ タイプ ファイルシステム フラグ 1 1049kB 525MB 524MB primary ext4 boot 2 525MB 21.5GB 20.9GB primary lvm モデル: VMware, VMware Virtual S (scsi) ディスク /dev/sdb: 10.7GB セクタサイズ (論理/物理): 512B/512B パーティションテーブル: msdos 番号 開始 終了 サイズ タイプ ファイルシステム フラグ 1 32.3kB 10.7GB 10.7GB primary lvm モデル: Linux device-mapper (linear) (dm) ディスク /dev/mapper/vg_host01-lv_var: 8380MB セクタサイズ (論理/物理): 512B/512B パーティションテーブル: loop 番号 開始 終了 サイズ ファイルシステム フラグ 1 0.00B 8380MB 8380MB ext4 モデル: Linux device-mapper (linear) (dm) ディスク /dev/mapper/vg_host02-lv_data: 10.7GB セクタサイズ (論理/物理): 512B/512B パーティションテーブル: loop 番号 開始 終了 サイズ ファイルシステム フラグ 1 0.00B 10.7GB 10.7GB ext4 モデル: Linux device-mapper (linear) (dm) ディスク /dev/mapper/vg_host01-lv_swap: 2080MB セクタサイズ (論理/物理): 512B/512B パーティションテーブル: loop 番号 開始 終了 サイズ ファイルシステム フラグ 1 0.00B 2080MB 2080MB linux-swap(v1) モデル: Linux device-mapper (linear) (dm) ディスク /dev/mapper/vg_host01-lv_root: 10.5GB セクタサイズ (論理/物理): 512B/512B パーティションテーブル: loop 番号 開始 終了 サイズ ファイルシステム フラグ 1 0.00B 10.5GB 10.5GB ext4 [root@host01 ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/vg_host01-lv_root 9.7G 3.3G 6.0G 36% / tmpfs 491M 0 491M 0% /dev/shm /dev/sda1 485M 34M 426M 8% /boot /dev/mapper/vg_host01-lv_var 7.7G 230M 7.1G 4% /var /dev/mapper/vg_host02-lv_data 9.9G 151M 9.2G 2% /data [root@host01 ~]# mount /dev/mapper/vg_host01-lv_root on / type ext4 (rw) proc on /proc type proc (rw) sysfs on /sys type sysfs (rw) devpts on /dev/pts type devpts (rw,gid=5,mode=620) tmpfs on /dev/shm type tmpfs (rw,rootcontext="system_u:object_r:tmpfs_t:s0") /dev/sda1 on /boot type ext4 (rw) /dev/mapper/vg_host01-lv_var on /var type ext4 (rw) /dev/mapper/vg_host02-lv_data on /data type ext4 (rw) none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw) [root@host01 ~]# pvscan PV /dev/sdb1 VG vg_host02 lvm2 [9.99 GiB / 0 free] PV /dev/sda2 VG vg_host01 lvm2 [19.51 GiB / 0 free] Total: 2 [29.50 GiB] / in use: 2 [29.50 GiB] / in no VG: 0 [0 ] [root@host01 ~]# vgscan Reading all physical volumes. This may take a while... Found volume group "vg_host02" using metadata type lvm2 Found volume group "vg_host01" using metadata type lvm2 [root@host01 ~]# lvscan ACTIVE '/dev/vg_host02/lv_data' [9.99 GiB] inherit ACTIVE '/dev/vg_host01/lv_root' [9.77 GiB] inherit ACTIVE '/dev/vg_host01/lv_swap' [1.94 GiB] inherit ACTIVE '/dev/vg_host01/lv_var' [7.80 GiB] inherit |
再起動後は/dev/sda,/dev/sdbとして認識されています。
/パーティションの移動なども大丈夫なんでしょうかね…..