これまで「IBM Cloud : virt-v2vを使ったVMwareからVSI for VPCへ移行手順の補足-VCFaaS環境からの移行」のようにvirt-v2vを使ってVCFaaSの環境からVSI for VPCへの移行を検証してきました。
「IBM Cloud: RackWare Management Module(RMM)を使ったVMware環境からのVPCへの移行: Linux編」でRackWare RMMを使った移行のガイドが公開されましたので、VCFaaSの環境からの移行も検証します。
手順は「IBM Cloud: RackWare Management Module(RMM)を使ったVMware環境からのVPCへの移行: Linux編」で十分に説明されていますので、気が付いた点だけ記載します。
RackWare RMMを使ったVCFaaSのからのVPCへのWindowsの移行は、こちらで検証しました。
RHEL8ではuseraddでエラーのようなものがでる
ガイドでは、移行用にsudoでrootになれる一般ユーザーの追加がガイドされていました。
そこで、移行元のRHEL8にrackwareユーザーを追加したところ
useradd -m -s /bin/bash rackware
下記のようなメッセージが出ました。
[root@onoda-rhel8 ~]# useradd -m -s /bin/bash rackware
[sss_cache] [sysdb_domain_cache_connect] (0x0010): DB version too old [0.23], expected [0.24] for domain implicit_files!
Higher version of database is expected!
In order to upgrade the database, you must run SSSD.
Removing cache files in /var/lib/sss/db should fix the issue, but note that removing cache files will also remove all of your cached credentials.
Could not open available domains
[sss_cache] [sysdb_domain_cache_connect] (0x0010): DB version too old [0.23], expected [0.24] for domain implicit_files!
Higher version of database is expected!
In order to upgrade the database, you must run SSSD.
Removing cache files in /var/lib/sss/db should fix the issue, but note that removing cache files will also remove all of your cached credentials.
Could not open available domains
このバグのようです。
ユーザーは追加されています。下記のようにSSSDキャッシュをクリアしてください。RHEL8では修正されないそうです。
systemctl stop sssd ; rm -f /var/lib/sss/db/* ; systemctl start sssd
移行先VSIからvpcuserが削除される
移行元になかったvpcuserは移行先VSIからも削除されます。
この事象は、ガイドにも記載があります。
先に移行元で作っておいたrackwareユーザーでアクセスできるので、そちらを使ってください。
VCFaaSのサブスクリプション・マネージャー設定が移行されてしまう
これが今回一番悩んだ項目です。
VCF for Classicでは、RHELやWindowsなどVM用のOSライセンスはBYOLとして持ち込みになります。
一方、マルチテナントのVCFaaSではRHELやWindowsなどVM用のOSライセンスは、IBM Cloudからの貸与となります。
なお、シングルテナントのVCFaaS上のVM用のOSライセンスは、BYOLです。
RackWareでマルチテナントのVCFaaSから移行したところ、サブスクリプション・マネージャーにアクセスできなくなりました。
RackWareの移行で、サブスクリプションの構成情報も上書きされた副作用のためでした。
[root@onoda-rhel8 ~]# subscription-manager list
(応答なし)
構成情報を確認します。
subscription-manager config
マルチテナントのVCFaaSのサブスクリプション・マネージャーの構成情報はこうです。
[root@onoda-rhel8 ~]# subscription-manager config
[server]
hostname = rhncapdal1001.adn.networklayer.com
insecure = [0]
no_proxy = []
port = [443]
prefix = /rhsm
proxy_hostname = []
proxy_password = []
proxy_port = []
proxy_scheme = [http]
proxy_user = []
server_timeout = [180]
ssl_verify_depth = [3]
[rhsm]
auto_enable_yum_plugins = [1]
baseurl = https://rhncapdal1001.adn.networklayer.com/pulp/content/
ca_cert_dir = [/etc/rhsm/ca/]
consumercertdir = [/etc/pki/consumer]
entitlementcertdir = [/etc/pki/entitlement]
full_refresh_on_yum = 1
inotify = [1]
manage_repos = [1]
package_profile_on_trans = 1
pluginconfdir = [/etc/rhsm/pluginconf.d]
plugindir = [/usr/share/rhsm-plugins]
productcertdir = [/etc/pki/product]
repo_ca_cert = /etc/rhsm/ca/katello-server-ca.pem
repomd_gpg_url = []
report_package_profile = [1]
[rhsmcertd]
auto_registration = [0]
auto_registration_interval = [60]
autoattachinterval = [1440]
certcheckinterval = [240]
disable = [0]
splay = [1]
[logging]
default_log_level = [INFO]
[] - Default value in use
一方、本来のVPC for VSIをtokのVPCにデプロイした場合の、デフォルトのサブスクリプション・マネージャーの構成情報はこうです。
[root@onoda-rhel8-temp ~]# subscription-manager config
[server]
hostname = rhha01.updates.jp-tok.iaas.service.networklayer.com
insecure = [0]
no_proxy = []
port = 8443
prefix = /rhsm
proxy_hostname = []
proxy_password = []
proxy_port = []
proxy_scheme = [http]
proxy_user = []
server_timeout = [180]
ssl_verify_depth = [3]
[rhsm]
auto_enable_yum_plugins = [1]
baseurl = https://rhha01.updates.jp-tok.iaas.service.networklayer.com/pulp/repos
ca_cert_dir = [/etc/rhsm/ca/]
consumercertdir = [/etc/pki/consumer]
entitlementcertdir = [/etc/pki/entitlement]
full_refresh_on_yum = 1
inotify = [1]
manage_repos = [1]
package_profile_on_trans = 1
pluginconfdir = [/etc/rhsm/pluginconf.d]
plugindir = [/usr/share/rhsm-plugins]
productcertdir = [/etc/pki/product]
repo_ca_cert = /etc/rhsm/ca/katello-server-ca.pem
repomd_gpg_url = []
report_package_profile = [1]
[rhsmcertd]
auto_registration = [0]
auto_registration_interval = [60]
autoattachinterval = [1440]
certcheckinterval = [240]
disable = [0]
splay = [1]
[logging]
default_log_level = [INFO]
[] - Default value in use
サーバーが異なります。
VSI for VPCの環境からは、マルチテナントのVCFaaSで利用していたサーバーのIPアドレスは取得出来ますが、pingへの応答はありませんでした。アクセスできないようです。
そのため、サブスクリプション・マネージャーの構成情報もコピーされたターゲットのVSI for VPCからは、サブスクリプション・マネージャーにアクセスできなくなりました。
[root@onoda-rhel8-temp ~]# ping rhncapdal1001.adn.networklayer.com
PING rhncapdal1001.adn.networklayer.com (161.26.96.25) 56(84) bytes of data.
(応答なし)
VPC用サブスクリプション・マネージャーへの登録
調査したところ、登録用のスクリプトが「How do I reregister an RHEL virtual server instance??」というIBM Cloud Docsページで公開されていました。
スクリプトの中で、/var/lib/cloud/instance/scripts/vendor/ のファイルを参照しているのが分かります。
そこで、別のVSIを立て、コピーすることとしました。
RackWare RMMで移行を実行する前に退避し、移行後に戻すのが、本来の正しい手順だと思いますが、今回は手順確認の検証ということで、安易な方法をとりました。
別に立てたVSIで一般ユーザーでもアクセス出来るように、権限を変更します。
[root@onoda-rhel8-temp ~]# chmod 777 /var/lib/cloud/instance/scripts/vendor/*
[root@onoda-rhel8-temp ~]# ls -al /var/lib/cloud/instance/scripts/vendor/
total 36
drwxr-xr-x. 2 root root 54 Jul 9 01:30 .
drwxr-xr-x. 3 root root 20 Jul 9 01:30 ..
-rwxrwxrwx. 1 root root 32 Jul 10 00:42 part-002
-rwxrwxrwx. 1 root root 841 Jul 10 00:42 part-003
-rwxrwxrwx. 1 root root 25175 Jul 10 00:42 part-004
ターゲットサーバーからscpでコピーします。
mkdir -p /var/lib/cloud/instance/scripts/vendor/
scp vpcuser@[一時サーバー]:/var/lib/cloud/instance/scripts/vendor/* /var/lib/cloud/instance/scripts/vendor
[root@onoda-rhel8 ~]# mkdir -p /var/lib/cloud/instance/scripts/vendor/
[root@onoda-rhel8 ~]# scp vpcuser@10.50.6.4:/var/lib/cloud/instance/scripts/vendor/* /var/lib/cloud/instance/scripts/vendor
The authenticity of host '10.50.6.4 (10.50.6.4)' can't be established.
ECDSA key fingerprint is SHA256:Az5mmkD9D5q5Ft5IvCCaoONJSXk4iqdLKNZvJdvdPQE.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '10.50.6.4' (ECDSA) to the list of known hosts.
part-002 100% 32 17.3KB/s 00:00
part-003 100% 841 696.1KB/s 00:00
part-004
[root@onoda-rhel8 ~]# ls -al /var/lib/cloud/instance/scripts/vendor/
total 36
drwxr-xr-x. 2 root root 54 Jul 10 01:20 .
drwxr-xr-x. 3 root root 20 Jul 10 01:08 ..
-rwxr-xr-x. 1 root root 32 Jul 10 01:39 part-002
-rwxr-xr-x. 1 root root 841 Jul 10 01:39 part-003
-rwxr-xr-x. 1 root root 25175 Jul 10 01:39 part-004
Docsからスクリプトをコピーします。
[root@onoda-rhel8 ~]# nano reregister-ng-rhel-vsi.sh
現在の構成ファイルをいったん削除します。
rm /etc/rhsm/rhsm.conf
[root@onoda-rhel8 ~]# rm /etc/rhsm/rhsm.conf
rm: remove regular file '/etc/rhsm/rhsm.conf'? y
スクリプトに実行属性を付けて実行します。
chmod +x reregister-ng-rhel-vsi.sh
./reregister-ng-rhel-vsi.sh
[root@onoda-rhel8 ~]# chmod +x reregister-ng-rhel-vsi.sh
[root@onoda-rhel8 ~]# ./reregister-ng-rhel-vsi.sh
Processing /var/lib/cloud/instance/scripts/vendor/part-004...
Cleaning metadata...
Updating Subscription Management repositories.
This system is registered with an entitlement server, but is not receiving updates. You can use subscription-manager to assign subscriptions.
15 files removed
Unregistering system...
Unregistering from: subscription.rhsm.redhat.com:443/subscription
Unknown or expired client certificate (HTTP error code 401: Unauthorized)
All local data removed
Removing any existing katello-ca RPMs...
Installing consumer RPM...
Retrieving http://rhha01.updates.jp-tok.iaas.service.networklayer.com/pub/katello-ca-consumer-latest.noarch.rpm
Verifying... ################################# [100%]
Preparing... ################################# [100%]
Updating / installing...
1:katello-ca-consumer-rhncaptok0401################################# [100%]
Registering system...
The system has been registered with ID: 0249f67c-987a-4009-8d13-3f9493f6bc79
The registered system name is: onoda-rhel8
登録されました。
[root@onoda-rhel8 ~]# subscription-manager status
+-------------------------------------------+
System Status Details
+-------------------------------------------+
Overall Status: Registered
Content Access Mode is set to Simple Content Access. This host has access to content, regardless of subscription status.
[root@onoda-rhel8 ~]# subscription-manager list
+-------------------------------------------+
Installed Product Status
+-------------------------------------------+
Product Name: Red Hat Enterprise Linux for x86_64
Product ID: 479
Version: 8.10
Arch: x86_64
まとめ
RackWare RMMを使う移行では、移行用のvAppにVMをコピーする手間もcloud-initの導入も必要ありません。
直接、VSI for VPCに移行するので移行も非常に楽です。
また、差分移行もできるので、最終移行時の停止時間も短くできます。
RackWare RMMはサードパーティ製品のため、そのライセンス費用が掛かりますが、移行の手間は大幅に削減されます。

