0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

IBM Cloud: btrfsをrootファイルシステムに含むサーバー(OpenSUSE)のVSI for VPCへの移行メモ

0
Posted at

1. はじめに

Rackwareは現在、SUSE + btrfsの移行をサポートしていないので、virt-v2vで移行できるかを確かめてみた。
ただ、SUSEそのものは持っていないので、OpenSUSEをVMWare上にインストールして検証している。手順のほとんどは、これと同じなので、何を実施したかの概要しか説明していない。

2. VMware環境上のOpenSuse環境の確認

OpenSuse環境のインストール手順は省略。btrfsがroot file systemとして利用されている。

バージョン情報
syasuda@opensuse-syasuda1:~> cat /etc/os-release
NAME="openSUSE Leap"
VERSION="16.0"
ID="opensuse-leap"
ID_LIKE="suse opensuse"
VERSION_ID="16.0"
PRETTY_NAME="openSUSE Leap 16.0"
ANSI_COLOR="0;32"
CPE_NAME="cpe:/o:opensuse:leap:16.0"
BUG_REPORT_URL="https://bugs.opensuse.org"
HOME_URL="https://www.opensuse.org/"
DOCUMENTATION_URL="https://en.opensuse.org/Portal:Leap"
LOGO="distributor-logo-Leap"
DISK情報
syasuda@opensuse-syasuda1:~> df -hT
Filesystem     Type      Size  Used Avail Use% Mounted on
/dev/sda3      btrfs      24G  810M   23G   4% /
devtmpfs       devtmpfs  4.0M     0  4.0M   0% /dev
tmpfs          tmpfs     985M     0  985M   0% /dev/shm
tmpfs          tmpfs     394M  744K  394M   1% /run
tmpfs          tmpfs     1.0M     0  1.0M   0% /run/credentials/systemd-journald.service
/dev/sda3      btrfs      24G  810M   23G   4% /.snapshots
/dev/sda3      btrfs      24G  810M   23G   4% /boot/grub2/i386-pc
/dev/sda3      btrfs      24G  810M   23G   4% /boot/grub2/x86_64-efi
/dev/sda3      btrfs      24G  810M   23G   4% /home
/dev/sda3      btrfs      24G  810M   23G   4% /opt
/dev/sda3      btrfs      24G  810M   23G   4% /srv
/dev/sda3      btrfs      24G  810M   23G   4% /root
/dev/sda3      btrfs      24G  810M   23G   4% /tmp
/dev/sda3      btrfs      24G  810M   23G   4% /usr/local
/dev/sda3      btrfs      24G  810M   23G   4% /var
/dev/sda2      vfat      512M  4.0M  508M   1% /boot/efi
tmpfs          tmpfs     1.0M     0  1.0M   0% /run/credentials/getty@tty1.service
tmpfs          tmpfs     197M  4.0K  197M   1% /run/user/1000
tmpfs          tmpfs     1.0M     0  1.0M   0% /run/credentials/serial-getty@ttyS0.service

syasuda@opensuse-syasuda1:~> lsblk -pf
NAME        FSTYPE FSVER LABEL UUID                                 FSAVAIL FSUSE% MOUNTPOINTS
/dev/sda
├─/dev/sda1
├─/dev/sda2 vfat   FAT16 EFI   BE2D-B7C2                             507.8M     1% /boot/efi
└─/dev/sda3 btrfs        ROOT  41b87736-08cc-6bd0-85de-d844cd161676   22.2G     3% /var
                                                                                   /usr/local
                                                                                   /tmp
                                                                                   /root
                                                                                   /srv
                                                                                   /opt
                                                                                   /home
                                                                                   /boot/grub2/x86_64-efi
                                                                                   /boot/grub2/i386-pc
                                                                                   /.snapshots
                                                                                   /
/dev/sr0
NW情報
syasuda@opensuse-syasuda1:~> nmcli con show
NAME    UUID                                  TYPE      DEVICE
ens192  6a12b10a-ddf4-49a9-83fd-f797a6e8cc0b  ethernet  ens192
lo      2ee90eea-b0f0-4e4f-b19e-8d6effbc78c0  loopback  lo

syasuda@opensuse-syasuda1:~> nmcli dev show
GENERAL.DEVICE:                         ens192
GENERAL.TYPE:                           ethernet
GENERAL.HWADDR:                         00:50:56:9D:30:42
GENERAL.MTU:                            1500
GENERAL.STATE:                          100 (connected)
GENERAL.CONNECTION:                     ens192
GENERAL.CON-PATH:                       /org/freedesktop/NetworkManager/ActiveConnection/2
WIRED-PROPERTIES.CARRIER:               on
IP4.ADDRESS[1]:                         10.153.35.253/27
IP4.GATEWAY:                            10.153.35.225
IP4.ROUTE[1]:                           dst = 0.0.0.0/0, nh = 10.153.35.225, mt = 20100
IP4.ROUTE[2]:                           dst = 10.153.35.224/27, nh = 0.0.0.0, mt = 100
IP4.DNS[1]:                             10.0.80.11
IP4.DNS[2]:                             10.0.80.12
IP6.ADDRESS[1]:                         fe80::250:56ff:fe9d:3042/64
IP6.GATEWAY:                            --
IP6.ROUTE[1]:                           dst = fe80::/64, nh = ::, mt = 256

GENERAL.DEVICE:                         lo
GENERAL.TYPE:                           loopback
GENERAL.HWADDR:                         00:00:00:00:00:00
GENERAL.MTU:                            65536
GENERAL.STATE:                          100 (connected (externally))
GENERAL.CONNECTION:                     lo
GENERAL.CON-PATH:                       /org/freedesktop/NetworkManager/ActiveConnection/1
IP4.ADDRESS[1]:                         127.0.0.1/8
IP4.GATEWAY:                            --
IP6.ADDRESS[1]:                         ::1/128
IP6.GATEWAY:                            --

syasuda@opensuse-syasuda1:~> 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 noprefixroute
       valid_lft forever preferred_lft forever
2: ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:50:56:9d:30:42 brd ff:ff:ff:ff:ff:ff
    altname enp11s0
    altname enx0050569d3042
    inet 10.153.35.253/27 brd 10.153.35.255 scope global noprefixroute ens192
       valid_lft forever preferred_lft forever
    inet6 fe80::250:56ff:fe9d:3042/64 scope link proto kernel_ll
       valid_lft forever preferred_lft forever
       
syasuda@opensuse-syasuda1:~> ip r
default via 10.153.35.225 dev ens192 proto static metric 20100
10.153.35.224/27 dev ens192 proto kernel scope link src 10.153.35.253 metric 100
cloud-initはインストールされていない
opensuse-syasuda1:~ # rpm -qa | grep cloud-init
opensuse-syasuda1:~ # ls -l /var/lib/cloud
ls: cannot access '/var/lib/cloud': No such file or directory
opensuse-syasuda1:~ # ls -l /etc/lib/cloud
ls: cannot access '/etc/lib/cloud': No such file or directory
opensuse-syasuda1:~ # ls -l /etc/cloud
ls: cannot access '/etc/cloud': No such file or directory

3. 変換の実施

  1. Converter VSIのセットアップなど詳細な手順はこれを参照。

  2. Gen1ストレージ付きの暫定VSI for VPCをCentOS10で作成。Auto-DeleteはDisabledにする。その後、この暫定VSIを削除して、Boot DISKを得る。

  3. Converter VSIに上記Boot DISKをアタッチ。/dev/vdeが割り当てられたことを以下で確認。

    Converer VSI上でのディスク確認
    root@syasuda-converter-fedora:~# lsblk -pf
    NAME        FSTYPE  FSVER            LABEL      UUID                                 FSAVAIL FSUSE% MOUNTPOINTS
    /dev/vda
    ├─/dev/vda1
    ├─/dev/vda2 vfat    FAT16            EFI-SYSTEM 7B77-95E7
    ├─/dev/vda3 ext4    1.0              boot       99d3b227-8df4-44aa-9e03-c7f3dbc6b118     45M    81% /boot
    └─/dev/vda4 xfs                      root       d0463b38-8446-453c-83bf-8d7a8a6f8b60     89G    10% /var
                                                                                                        /sysroot/ostree/deploy/fedora-coreos/var
                                                                                                        /sysroot
                                                                                                        /etc
    /dev/vdb    iso9660 Joliet Extension cidata     2026-10-22-01-34-42-00
    /dev/vdc    swap    1                SWAP-xvdb1 238abd1c-dd21-4e1a-b01a-6de74299c8fa
    /dev/vdd    ext4    1.0                         12e543f7-69a7-457c-bf6d-b447ea2b1842
    /dev/vde
    ├─/dev/vde1
    ├─/dev/vde2 vfat    FAT16            EFI        3E93-A4FF
    └─/dev/vde3 xfs                      ROOT       4a4e2c6d-cef5-4496-8fc5-150e0d5eb189
    
    
  4. Converter VSI上で、以下のスクリプトを作成して実行。

    createlink_opensuse.sh
    VM_NAME=syasuda-opensuse16
    TARGET_DEV=/dev/vde
    
    SYMLINK="/tmp/${VM_NAME}-sda"
    ln -fs "${TARGET_DEV}" "${SYMLINK}"
    ls -l "${SYMLINK}"
    
    root@syasuda-converter-fedora:~# bash createlink_opensuse.sh
    lrwxrwxrwx. 1 root root 8 Oct 22 10:40 /tmp/syasuda-opensuse16-sda -> /dev/vde
    
  5. VMware環境上のVMの正常停止

  6. Converter VSIで変換を実施。指定するスクリプトは以下を利用。

    root@syasuda-converter-fedora:~# virt-v2v -ic 'vpx://vsphere.local%5CAdministrator@vcsosv-vc.acs.japan.local/IBMCloud/vcs-osv-cluster/host-km000.acs.japan.local?no_verify=1' -it vddk -io vddk-libdir=/opt/vmware-vix-disklib-distrib/ -io vddk-thumbprint=D2:AE:CF:26:22:8C:89:13:A4:67:89:19:7F:64:1C:97:35:C8:11:54  "syasuda-opensuse16" -ip vcenter_passwd.txt -o disk -os /tmp --run nwscript-update-suse.sh
    [   0.0] Setting up the source: -i libvirt -ic vpx://vsphere.local%5CAdministrator@vcsosv-vc.acs.japan.local/IBMCloud/vcs-osv-cluster/host-km000.acs.japan.local?no_verify=1 -it vddk syasuda-opensuse16
    [   1.6] Opening the source
    [  11.0] Checking filesystem integrity before conversion
    [  25.8] Detecting if this guest uses BIOS or UEFI to boot
    [  26.2] Inspecting the source
    [  29.0] Detecting the boot device
    [  29.2] Checking for sufficient free disk space in the guest
    [  29.2] Converting openSUSE Leap 16.0 (opensuse16.0) to run on KVM
    virt-v2v: warning: could not determine a way to update the configuration of
    Grub2
    virt-v2v: The QEMU Guest Agent will be installed for this guest at first
    boot.
    virt-v2v: This guest has virtio drivers installed.
    [  37.8] Setting a random seed
    [  37.8] Running: nwscript-update-suse.sh
    [  38.8] SELinux relabelling
    [  40.8] Mapping filesystem data to avoid copying unused and blank areas
    [  46.1] Checking filesystem integrity after conversion
    [  47.4] Closing the overlay
    [  47.4] Assigning disks to buses
    [  47.4] Checking if the guest needs BIOS or UEFI to boot
    [  47.4] Setting up the destination: -o disk -os /tmp
    [  49.3] Copying disk 1/1
    █ 100% [****************************************]
    [ 574.0] Creating output metadata
    virt-v2v: warning: get_osinfo_id: unknown guest operating system:
    opensuse16.0
    [ 574.0] Finishing off
    
    nwscript-update-suse.sh
    #!/bin/bash
    set -e
    
    ############################################
    # SLES/openSUSE (update kernel parameter)
    ############################################
    if grep -qiE '^(ID=sles|ID="sles"|ID=opensuse-leap|ID="opensuse-leap")' /etc/os-release; then
    
      GRUB_CFG="/etc/default/grub"
    
      CMDLINE=$(grep '^GRUB_CMDLINE_LINUX=' "$GRUB_CFG" | cut -d'"' -f2)
      CMDLINE_DEFAULT=$(grep '^GRUB_CMDLINE_LINUX_DEFAULT=' "$GRUB_CFG" | cut -d'"' -f2)
    
      [[ "$CMDLINE_DEFAULT" != *net.ifnames=0* && "$CMDLINE" != *net.ifnames=0* ]] && CMDLINE="$CMDLINE net.ifnames=0"
      [[ "$CMDLINE_DEFAULT" != *biosdevname=0* && "$CMDLINE" != *biosdevname=0* ]] && CMDLINE="$CMDLINE biosdevname=0"
      [[ "$CMDLINE_DEFAULT" != *vga=normal* && "$CMDLINE" != *vga=normal* ]] && CMDLINE="$CMDLINE vga=normal"
      [[ "$CMDLINE_DEFAULT" != *console=tty1* && "$CMDLINE" != *console=tty1* ]] && CMDLINE="$CMDLINE console=tty1"
      [[ "$CMDLINE_DEFAULT" != *console=ttyS0* && "$CMDLINE" != *console=ttyS0* ]] && CMDLINE="$CMDLINE console=ttyS0"
    
      sed -i \
        "s|^GRUB_CMDLINE_LINUX=.*|GRUB_CMDLINE_LINUX=\"$CMDLINE\"|" \
        "$GRUB_CFG"
    
      grub2-mkconfig -o /boot/grub2/grub.cfg 2>/dev/null || true
    
    fi
    
    ############################################
    # Network Settings
    ############################################
    
    rm -f /etc/NetworkManager/system-connections/* || true
    rm -f /etc/sysconfig/network/ifcfg-* || true
    rm -f /etc/sysconfig/network/routes || true
    rm -f /etc/udev/rules.d/70-persistent-net.rules || true
    
    ############################################
    # keyfile for NetworkManager
    ############################################
    
    if grep -qiE '^(ID=sles|ID="sles"|ID=opensuse-leap|ID="opensuse-leap")' /etc/os-release; then
    
    cat <<EOF >/etc/NetworkManager/system-connections/dhcp-any.nmconnection
    [connection]
    id=dhcp-any
    type=ethernet
    autoconnect=true
    
    [ipv4]
    method=auto
    
    [ipv6]
    method=disabled
    EOF
    
    chmod 600 /etc/NetworkManager/system-connections/dhcp-any.nmconnection
    
    fi
    
    ############################################
    # ifcfg for wicked or NetworkManager
    ############################################
    
    if [ -d /etc/sysconfig/network ]; then
    
        IFCFG_FILE="/etc/sysconfig/network/ifcfg-eth0"
    
        cat > "$IFCFG_FILE" <<EOF
    BOOTPROTO='dhcp'
    DEVICE='eth0'
    STARTMODE='auto'
    EOF
    
        chmod 600 "$IFCFG_FILE"
    
    fi
    
  7. DISKのフラッシュ

    root@syasuda-converter-fedora:~# blockdev --flushbufs /dev/vde
    
  8. Converter VSIからディスクをdetach

  9. 新規にこのディスクをBoot DiskとしてVSI for VPCをプロビジョニング

4. 起動後の確認

バージョン情報
opensuse-syasuda1:~ # cat /etc/os-release
NAME="openSUSE Leap"
VERSION="16.0"
ID="opensuse-leap"
ID_LIKE="suse opensuse"
VERSION_ID="16.0"
PRETTY_NAME="openSUSE Leap 16.0"
ANSI_COLOR="0;32"
CPE_NAME="cpe:/o:opensuse:leap:16.0"
BUG_REPORT_URL="https://bugs.opensuse.org"
HOME_URL="https://www.opensuse.org/"
DOCUMENTATION_URL="https://en.opensuse.org/Portal:Leap"
LOGO="distributor-logo-Leap"
DISK情報
opensuse-syasuda1:~ # df -hT
Filesystem     Type      Size  Used Avail Use% Mounted on
/dev/vda3      btrfs      24G 1007M   23G   5% /
devtmpfs       devtmpfs  4.0M     0  4.0M   0% /dev
tmpfs          tmpfs     3.9G     0  3.9G   0% /dev/shm
tmpfs          tmpfs     1.6G  608K  1.6G   1% /run
tmpfs          tmpfs     1.0M     0  1.0M   0% /run/credentials/systemd-journald.service
/dev/vda3      btrfs      24G 1007M   23G   5% /.snapshots
/dev/vda3      btrfs      24G 1007M   23G   5% /boot/grub2/x86_64-efi
/dev/vda3      btrfs      24G 1007M   23G   5% /home
/dev/vda3      btrfs      24G 1007M   23G   5% /opt
/dev/vda3      btrfs      24G 1007M   23G   5% /boot/grub2/i386-pc
/dev/vda3      btrfs      24G 1007M   23G   5% /root
/dev/vda3      btrfs      24G 1007M   23G   5% /srv
/dev/vda3      btrfs      24G 1007M   23G   5% /tmp
/dev/vda3      btrfs      24G 1007M   23G   5% /usr/local
/dev/vda3      btrfs      24G 1007M   23G   5% /var
/dev/vda2      vfat      512M  4.0M  508M   1% /boot/efi
tmpfs          tmpfs     1.0M     0  1.0M   0% /run/credentials/getty@tty1.service
tmpfs          tmpfs     1.0M     0  1.0M   0% /run/credentials/serial-getty@ttyS0.service
tmpfs          tmpfs     794M  4.0K  794M   1% /run/user/1000

opensuse-syasuda1:~ # lsblk -pf
NAME        FSTYPE  FSVER            LABEL      UUID                                 FSAVAIL FSUSE% MOUNTPOINTS
/dev/vda
├─/dev/vda1
├─/dev/vda2 vfat    FAT16            EFI        BE2D-B7C2                             507.8M     1% /boot/efi
└─/dev/vda3 btrfs                    ROOT       41b87736-08cc-6bd0-85de-d844cd161676   22.1G     4% /var
                                                                                                    /usr/local
                                                                                                    /tmp
                                                                                                    /srv
                                                                                                    /root
                                                                                                    /boot/grub2/i386-pc
                                                                                                    /opt
                                                                                                    /home
                                                                                                    /boot/grub2/x86_64-efi
                                                                                                    /.snapshots
                                                                                                    /
/dev/vdb    iso9660 Joliet Extension cidata     2026-10-22-02-40-26-00
/dev/vdc    swap    1                SWAP-xvdb1 3b1abd86-7fc2-4401-ac3c-9b47ed928430
NW情報
opensuse-syasuda1:~ # nmcli con
NAME      UUID                                  TYPE      DEVICE
dhcp-any  27b549ef-0d09-30fe-80ee-63d2c2727120  ethernet  eth0
lo        e4135082-fc13-4b35-8734-f3d2d3ca2570  loopback  lo
opensuse-syasuda1:~ # nmcli dev show
GENERAL.DEVICE:                         eth0
GENERAL.TYPE:                           ethernet
GENERAL.HWADDR:                         02:00:07:DE:54:A8
GENERAL.MTU:                            1500
GENERAL.STATE:                          100 (connected)
GENERAL.CONNECTION:                     dhcp-any
GENERAL.CON-PATH:                       /org/freedesktop/NetworkManager/ActiveConnection/2
WIRED-PROPERTIES.CARRIER:               on
IP4.ADDRESS[1]:                         10.239.0.20/24
IP4.GATEWAY:                            10.239.0.1
IP4.ROUTE[1]:                           dst = 10.239.0.0/24, nh = 0.0.0.0, mt = 100
IP4.ROUTE[2]:                           dst = 0.0.0.0/0, nh = 10.239.0.1, mt = 100
IP4.DNS[1]:                             161.26.0.7
IP4.DNS[2]:                             161.26.0.8
IP6.GATEWAY:                            --

GENERAL.DEVICE:                         lo
GENERAL.TYPE:                           loopback
GENERAL.HWADDR:                         00:00:00:00:00:00
GENERAL.MTU:                            65536
GENERAL.STATE:                          100 (connected (externally))
GENERAL.CONNECTION:                     lo
GENERAL.CON-PATH:                       /org/freedesktop/NetworkManager/ActiveConnection/1
IP4.ADDRESS[1]:                         127.0.0.1/8
IP4.GATEWAY:                            --
IP6.ADDRESS[1]:                         ::1/128
IP6.GATEWAY:                            --

opensuse-syasuda1:~ # 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 noprefixroute
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 02:00:07:de:54:a8 brd ff:ff:ff:ff:ff:ff
    altname enp0s3
    altname ens3
    altname enx020007de54a8
    inet 10.239.0.20/24 brd 10.239.0.255 scope global dynamic noprefixroute eth0
       valid_lft 156sec preferred_lft 156sec
       
opensuse-syasuda1:~ # ip r
default via 10.239.0.1 dev eth0 proto dhcp src 10.239.0.20 metric 100
10.239.0.0/24 dev eth0 proto kernel scope link src 10.239.0.20 metric 100
cmdlineカーネルパラメーター
opensuse-syasuda1:~ # cat /proc/cmdline
BOOT_IMAGE=/boot/vmlinuz-6.12.0-160000.39-default root=UUID=41b87736-08cc-6bd0-85de-d844cd161676 net.ifnames=0 biosdevname=0 vga=normal console=tty1 rw quiet systemd.show_status=1 console=ttyS0,115200 console=tty0 security=selinux selinux=1
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?