CentOSのインストールを、LVMでパーティション分割された1TBのディスクからいくつかの同一のマシンに複製する必要があります。オペレーティングシステムと一部のソフトウェアのみがインストールおよび構成されているため、ディスクはほとんど空です。
LVMがない場合は、パーティションテーブル全体をコピーし、partcloneを使用してパーティションを1つずつ複製します。
sfdisk -d /dev/sda | sed -e 's/sda/sdb/' | sfdisk /dev/sdb
partclone.ext4 -c -s /dev/sda# -o - | partclone.ext4 -r -s - -o /dev/sdb#
ただし、LVMでは機能しないと思います。
もちろん、dd
を使用してディスク全体を複製することもできます。
dd if=/dev/sda of=/dev/sdb
しかし、partcloneに比べて時間がかかりすぎます。
LVMパーティションをより速くクローンする方法はありますか?考えられる解決策の1つは、ddを使用してLVMパーティションを別のディスクの通常のパーティションに複製し、partcloneを使用して新しいディスクを他のマシンに複製することです。しかし、私はこのようなものがうまくいくかどうかわかりません:
dd if=/dev/mapper/vg_node07-lv_root of=/dev/sdb1
うまくいきますか?他の解決策を教えてください。
はい、説明どおりにdd
を使用できます。
私が行うことは、可能な限り最小のパーティションを使用してソースイメージを作成し、それらを複製して、ターゲット上の論理ボリュームとファイルシステムを拡大することです。クローニング手順は次のようになります。
# <attach target for cloning, say, /dev/sdc>
# CURRENT_LE=2000 (get exact "Current LE" value from lvdisplay)
# NEW_SIZE="20G"
# parted -a optimal /dev/sdc mklabel gpt mkpart p1 ext4 0% 100%
# pvcreate /dev/sdc1
# vgcreate nodexx /dev/sdc1
# lvcreate -n lv_root -l $CURRENT_LE nodexx
# dd if=/dev/node07/lv_root of=/dev/nodexx/lv_root bs=4M
# lvresize /dev/vg_nodexx/lv_root -L $NEW_SIZE
# fsck.ext4 -f -y /dev/vg_nodexx/lv_root
# resize2fs /dev/vg_nodexx/lv_root
LVMとファイルシステムツールを予約する必要がありますが、これはシェルスクリプトの候補として最適です。
VMware p2vソフトウェアとほぼ同じことができます。それがすることはあなたが望むとおりに新しいシステム上に新しいファイルシステムを作成し、他のサーバーにファイルシステムのtarを行うことです。これにより、すべてがまったく同じになり、現在使用されているファイルとスペースのみがコピーされます。次に、起動可能なことを確認するために、grubを実行する必要があります。