LVMを使用して複数の小さなドライブから1つの大きなドライブにデータを移動する

LVMを使用して複数の小さなドライブから1つの大きなドライブにデータを移動する

LVMをこのように構築した空間を活用して

NAME                         MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sr0                           11:0    1 1024M  0 rom
vda                          252:0    0   10G  0 disk
└─vda1                       252:1    0   10G  0 part /
vdb                          252:16   0   10G  0 disk
└─pro103-home--files (dm-2)  253:2    0   10G  0 lvm  /home/pro103by
vdc                          252:32   0   50G  0 disk
└─pro103by--sql-mysql (dm-1) 253:1    0   90G  0 lvm  /data
vdd                          252:48   0   30G  0 disk
└─dbbackup-data (dm-0)       253:0    0   30G  0 lvm  /dbbackup
vde                          252:64   0   30G  0 disk
└─pro103by--sql-mysql (dm-1) 253:1    0   90G  0 lvm  /data
vdf                          252:80   0   10G  0 disk
└─pro103by--sql-mysql (dm-1) 253:1    0   90G  0 lvm  /data
vdg                          252:96   0  150G  0 disk
└─vdg1                       252:97   0  150G  0 part

pro103by-sqlボリュームグループに含まれるドライブ

lvs -o +devices /dev/pro103by-sql/mysql
  LV    VG           Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert Devices
  mysql pro103by-sql -wi-ao---- 89.99g                                                     /dev/vdc(0)
  mysql pro103by-sql -wi-ao---- 89.99g                                                     /dev/vde(0)
  mysql pro103by-sql -wi-ao---- 89.99g                                                     /dev/vdf(0)

使用スペース

pvs -o+pv_used
  PV         VG           Fmt  Attr PSize   PFree   Used
  /dev/vdb   pro103       lvm2 a--u  10.00g   4.00m  9.99g
  /dev/vdc   pro103by-sql lvm2 a--u  50.00g      0  50.00g
  /dev/vdd   dbbackup     lvm2 a--u  30.00g      0  30.00g
  /dev/vde   pro103by-sql lvm2 a--u  30.00g      0  30.00g
  /dev/vdf   pro103by-sql lvm2 a--u  10.00g      0  10.00g
  /dev/vdg1  pro103by-sql lvm2 a--u 150.00g 150.00g     0

3つのドライブすべてでデータを移動する必要があります。 - /dev/vdc /dev/vde /dev/vdf pvmoveを使用してあるドライブから別のドライブにデータを移動する方法を知っていますが、これがどのように機能するのかわかりません。この場合。

答え1

免責事項:バックアップを作成してください。

これは、最初の3つのPV(50 + 30 + 10 = 80 g)に使用された合計スペースが4番目のPV(150 g)の使用可能スペースよりも小さいためです。

これは複雑な作業ではありません。 (最初と)は2番目の例です。pvmoveお客様のケースのマニュアルページは次のとおりです。

指定されたPVの単純なLVで使用されるすべての物理範囲を、VGの他の場所で使用可能な物理範囲に移動します。

pvmove /dev/sdb1

物理範囲を移動する場合は、特定の目標PVを使用してください。

pvmove /dev/sdb1 /dev/sdc1

あなたの場合に適しているので、一度に1つずつ3つのコマンドを使用して実行できます。

pvmove /dev/vdc /dev/vdg1
pvmove /dev/vde /dev/vdg1
pvmove /dev/vdf /dev/vdg1

これマニュアルページにも記載されています。単一のLVに対してこれを並列に実行しないでください。破損は発生しませんが、どの操作も完了せず、再実行する必要があります。

異なるソースPVからデータを移動する場合は、複数のpvmovesを同時に実行できます。ただし、追加のpvmovesはすでに変更されているLVを無視します。そのため、一部のデータは移動されない場合があります。

これは、データベースが実行されている状態でオンラインで実行できます(これは、pvmove一時ミラーマップなどを使用してシームレスな移行を保証します。詳細については、参照)。マニュアルページに関する注意事項.).ただし、サービスを継続して実行するためにこれが必要ない場合は、バックアップを実行する前にバックアップを実行してデータベースをオフラインにすることをお勧めします。これにより、予期しない問題が発生した場合にバックアップからロールバックできます。

/dev/vdg1その後、次のいずれかのコマンドを実行して、すべてのデータが実際にPVにあることを確認できます。

pvdisplay --maps

または具体的に:

pvdisplay --maps /dev/vdc
pvdisplay --maps /dev/vde
pvdisplay --maps /dev/vdf
pvdisplay --maps /dev/vdg1

これにより、/dev/vdg1(すべて)/dev/pro103by-sql/mysqlで使用されている物理範囲のみが表示されます。

直交命令は次のとおりです。

lvdisplay --maps /dev/pro103by-sql/mysql

これは、すべての論理範囲が/dev/vdg1

関連情報