どうゆう事かと言うと、DRBDをやるためにKVMの基にある仮想ホストをコピーしたい。
この仮想ホストはsambaの設定とpcsとpacemakerなどをインストールした状態なので、これをコピーすれば、一から作成せずに済む。
という事で、これはローカルネットワーク内だが今後のことも考えSSHを使いDDでコピーする。
転送元のホスト名とIP:smb6 192.168.0.46 192.168.135.66 xxは伏せ字
転送先のホスト名とIP:smb7 192.168.0.47 192.168.135.67
192.168.135.66などはDRBDのデーターの複製用
まずはsmb1でSSHを設定していく。尚、almalinux9はSSHはデフォルトでインストールされていた。このままではパスワードでのログインが出来てしまいセキュリティー上、良くないので変更して行きますがその設定は /etc/ssh/sshd_configを変更するのでは無く、/etc/ssh/sshd_config.dに 数字(50より小さい数)xxxxxx.conf で作るそう。xxxxxは何でもいい、
# gedit /etc/ssh/sshd_config.d/40sshConfChg.conf
Hostkey ~/.ssh/id_ecdsa
PasswordAuthentication no
LogLevel DEBUG
UsePAM no
としてから
# systemctl daemon-reload
で設定を有効にし、設定のチェック
# ssh -T >ssh-conf-chk
と打ち込みssh-conf-chkにその結果を保存すると
WARNING: ‘UsePAM no’ is not supported in RHEL and may cause several problems
と表示されたので、UsePAM noをコメントアウトし再度
# systemctl daemon-reload
次にkeyを作成するが、これはコピーされる側のホストで行う。まずは鍵のセットを rsa で無くecdsa (rsa ecdsaの違いはここを参照) で作ります。
# ssh-keygen -t ecdsa
Generating public/private ecdsa key pair.
Enter file in which to save the key (/root/.ssh/id_ecdsa): Enterのみ入力
Enter passphrase (empty for no passphrase): Enterのみ入力
Enter same passphrase again: Enterのみ入力
でもって /root/.ssh/ に id_esdsa.pub があるのでこれを仮想ホストの設定があるホストにscpで転送するが転送元で
# scp ~/.ssh/id_ecdsa.pub root@192.168.0.46:~/.ssh/authorized_keys
id_ecdsa.pub 100% 180 307.1KB/s 00:00
authorized_keysの権限設定を変更するためにSSHで転送元にログイン
# ssh root@192.168.0.46
Activate the web console with: systemctl enable –now cockpit.socket
Last login: Sat Dec 7 06:05:27 2024 from 192.168.xx.41
# chmod 600 .ssh/authorized_keys
# exit
ログアウト
Connection to 192.168.0.46 closed.
いよいよ dd でコピーを開始
# ssh root@192.168.0.46 sudo dd status=progress if=/dev/xxx…. |dd of=/dev/xxx…
コピーが終わったら、hosnameと IPアドレスがダブっているので変更するが、このまま、オフラインで行うにはloopデバイスを設定しないと出来ない(仮想マシンは領域の中にさらに領域を作る。何でこんなことするのかは私には理解できない、一つのイメージファイルに複数の領域を作りたいから?でも他の方法でも複数の領域を設定出来る。だれかご存知の方がいれば是非教えて下さい。このためにバックアップもやりにくくなるし(参照:https://www.kinryokai.net/modules/news/article.php?storyid=298))
まずはオリジナルの仮想マシンを止めてから(IPがダブっているので)コピーした仮想マシンを立ち上げ、設定していくが私はDRBDの為にネットワークカードを1枚足しているので、ブリッジをもう一つ作る。このカードはDRBDのデーターの複製の為に使うだけなので、クロスケーブルでsmb1 とsmb2を継いでいるのでブリッジを作らず、IPアドレスだけ設定すればいいと思うが、一様ブリッジは作った、まずはネットワークを調べる
# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master br0 state UP group default qlen 1000
link/ether 00:f0:4c:68:f2:04 brd ff:ff:ff:ff:ff:ff
3: enp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master br1 state UP group default qlen 1000
link/ether 08:bf:b8:ba:f0:26 brd ff:ff:ff:ff:ff:ff
4: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 00:f0:4c:68:f2:04 brd ff:ff:ff:ff:ff:ff
inet 192.168.0.46/24 brd 192.168.xx.255 scope global noprefixroute br0
valid_lft forever preferred_lft forever
inet6 fe80::bf44:6f79:ef33:acaa/64 scope link noprefixroute
valid_lft forever preferred_lft forever
後略
enp3s0がbr1用なので
# nmcli con add type bridge ifname br1
# nmcli con mod br1 bridge.stp no
固定IPにし、アドレス設定
# nmcli con mod br1 ipv4.method manual ipv4.address 192.168.135.47/24
Gateway と dns は設定していない
br1にインターフェイスを割り当てる。インターフェースはenp3s0、ブリッジはbridge-br0の時
# nmcli con add type ethernet ifname enp3s0 master br1
# nmcli con up br1
# nmcli con up enp3s0
で反映させられる
これだやっと仮想ホストを立ち上げられるが、IPアドレスとホスト名がダブっているので変更する事