isLandcenter 非番中

ブログトップ | ログイン

openSUSE Leap 15.3(beta), How to Migrate to SUSE Linux Enterprise 15sp3, SLES15sp3 へのマイグレート


openSUSE Leap 15 は、SUSE Linux Enterprise(SLES15) との互換性、相互運用性が向上している所がウリです。その一つに、openSUSE Leap から SLES15 へのスムーズなマイグレーションが容易である点があります。単純に言えば、CentOS をそのまま RHEL に変えてしまう、と言うような事です。

2021/4 現在の beta 版です。正式版ではより良く変わっているかも知れません。

という事で openSUSE Leap 15.3 (beta) から、SLE15sp3(beta) へのマイグレーションをやってみました。

-- 参考にしたドキュメント

5.9 Upgrading from openSUSE Leap to SUSE Linux Enterprise Server

9 SUSE Linux Enterpriseの登録とモジュール/拡張機能の管理

-- 大体の流れ
Upgrade guide での作業の流れとしては

1. openSUSE Leap に SUSEconnect パッケージをインストール


2. SUSEconnect で、SLE のサブスクリプションをアクティベートして、SLE のリポジトリを設定
3. openSUSE Leap のリポジトリを無効化
4. zypper dup --force-resolution を実行して、SUSE の公式リポジトリからアップデート
5. 再起動した後 orphansd パッケージを削除

という事です。

とても重要:あくまでもテスト環境なので、幾つもの失敗がありました。本番環境でやるには、必ずバックアップを取っておく事です。


全体の流れは9分程度の動画にまとめました。音出ます。



-- 空き容量の確認

zypper でアップデートする場合、必ず空き容量を確保して確認しておく事です。システムのルートパーティションはデフォルト BtrFS です。Copy on write でアップデートが上書きされるのではなく、追加書き込みしてスナップショットされます。充分な空き容量を確保しておいてください。

ルートパーティションは 30Gb 程度のサイズがないと厳しいでしょう。

今回のテストでは、約 3.5Gb 程度の新規書き込みがありました。

BtrFS の甘い罠、SUSE Linux アップデート前の空き容量の確認と確保

gnome Disk Usage Analyzer (#baobab) や btrfs などのコマンドで確認

openSUSE Leap 15.3(beta), How to Migrate to SUSE Linux Enterprise 15sp3, SLES15sp3 へのマイグレート_a0056607_15200079.png



opensese153:~ # btrfs fi usage /
Overall:
Device size: 40.01GiB
Device allocated: 21.57GiB
Device unallocated: 18.44GiB
Device missing: 0.00B
Used: 18.97GiB
Free (estimated): 19.26GiB (min: 10.04GiB)
Data ratio: 1.00
Metadata ratio: 2.00
Global reserve: 39.39MiB (used: 0.00B)

Data,single: Size:19.01GiB, Used:18.19GiB
/dev/sda10 19.01GiB

Metadata,DUP: Size:1.25GiB, Used:399.39MiB
/dev/sda10 2.50GiB

System,DUP: Size:32.00MiB, Used:16.00KiB
/dev/sda10 64.00MiB

Unallocated:
/dev/sda10 18.44GiB
opensese153:~ #





-- snapshot の削除

yast > Filesystem snapshots で、スナップショットを確認して、古いスナップショットを削除します。どれくらい消せばいいのかの判断は難しい所ですが、古いシングルスナップショットは容量を食います。User Data の項目で important = no のスナップショットは削除してもいいでしょう。シングルスナップショットが複数ある場合、古いスナップショットから削除します。

openSUSE Leap 15.3(beta), How to Migrate to SUSE Linux Enterprise 15sp3, SLES15sp3 へのマイグレート_a0056607_15215484.png

最後に。シングル Snapshot を Create して、openSUSE Leap から SLE へマイグレーションした後の、いざという場合のロールバックを作成しておきます。

openSUSE Leap 15.3(beta), How to Migrate to SUSE Linux Enterprise 15sp3, SLES15sp3 へのマイグレート_a0056607_15222394.png

7.1.3.4 スナップショットのアーカイブの制御

-- openSUSE Leap 15 リポジトリの無効化と SLE15 リポジトリの追加

さて。SLE のドキュメントでは、SUSEconnect コマンドで、サブスクリプションコードを登録して、SLE のリポジトリに切り替え、 zypper dup --force-resolution を実行する、とありますが、今回入手したのは openSUSE Leap も SLE15sp3 も bata 版で、評価版です。サブスクリプションコードがありません。

また、zypper を使って SUSE Enterprise Linux をインストールするには、ADSLしかない、私の様なインターネット僻地、北海道の原野の住民にとっては一晩どころか数日の仕事になります。その間は、まったく仕事にならないし、実際にインターネットに接続できないデディケートな環境の場合もあります。現実に数十台、数百台のターゲットがある場合、現実的ではありません。

Subscription Management Tool (SMT)でも構築されていればいいのでしょうが、このブログ記事一本のために、大袈裟なこともできません。、

という事で、手元の HTTP サーバーに次の様に「とりあえず」SLE 15sp3.ISO をマウントして展開しておきました。いつもの事でズルします。SUSE さんごめんなさい。

サブスクリプション購入はこちら

# mkdir /srv/www/htdocs/sles15sp3
# mount -o loop <path>SLE-15-SP3-Full-x86_64-PublicBeta-Media1.iso /srv/www/htdocs/sles15sp3

-- openSUSE のリポジトリを切り替え

yast > Software > Software Repositores より、openSUSE Leap のリポジトリ Enabled/Autor Reflesh > uncheck します。

openSUSE Leap 15.3(beta), How to Migrate to SUSE Linux Enterprise 15sp3, SLES15sp3 へのマイグレート_a0056607_15235662.png

次にAddボタンから Repositories を追加します。タイプ: HTTP で、手元の HTTP サーバの url をセットします。
もし、10Gbの ISO ファイルを置けるスペースがあれば、メディアタイプ Local ISO も良いでしょう。
USB メディアにインストールイメージを展開してそこからマイグレーションソースとすることも考えられます。

Extensions の中から、Upgrade guide にある様に、Basesystems...., Desktop Applications...., Legacy...., Server Applications...., の4つのエクステンションを最低限チェックします。

openSUSE Leap 15.3(beta), How to Migrate to SUSE Linux Enterprise 15sp3, SLES15sp3 へのマイグレート_a0056607_15242063.png


-- マイグレーションの開始

ここからは、後戻りできません。さすがに yast で全てチェックしてアップデートするわけにはいかないので、zypper dup コマンドで一括アップデートします。

# zypper dup --force-resolutions

を実行します。

ファイルのコンフリクトなどの警告があれば "yes" で上書き

openSUSE Leap 15.3(beta), How to Migrate to SUSE Linux Enterprise 15sp3, SLES15sp3 へのマイグレート_a0056607_15273893.png


一応、マイグレーションはできた様です。

再起動します。

-- あれっ???失敗か?(何かが足りない!)

-- /etc/os-release

これは、openSUSE のままでした。まぁ、zypper によるパッケージのみのマイグレーションですから、/etc/の下はよほどの事がない限り書き換わらないのでしょう。

openSUSE Leap 15.3(beta), How to Migrate to SUSE Linux Enterprise 15sp3, SLES15sp3 へのマイグレート_a0056607_15282244.png

ただし、壁紙や、ロゴは新しい SLE 15sp3 のものに書き換わっています。

-- /etc/issue を見てみる

# cat /etc/issue
Welcome to \S - Kernel \r (\l).

br0: \4{br0} \6{br0}
eth0: \4{eth0} \6{eth0

これも openSUSE のままです。元々の issue ファイルは openSUSE Leap 15 では issue の中身は空欄の様です。

何かが足りない。コメント頂けると幸いです。

-- テキストモードで起動してみる

やっぱり openSUSE のままだったりします。何かが足りない。

openSUSE Leap 15.3(beta), How to Migrate to SUSE Linux Enterprise 15sp3, SLES15sp3 へのマイグレート_a0056607_15291283.png


-- grub のメニュー

これも、メニュータイトルは openSUSE Leap 15.3 の物ですが、背景は SUSE の新しいロゴとカメレオンです。

openSUSE Leap 15.3(beta), How to Migrate to SUSE Linux Enterprise 15sp3, SLES15sp3 へのマイグレート_a0056607_15293221.png


-- orphaned Pacjkage の削除

そして
「起動できなくなった!」

Upgarage Guide の中では、最後に Orphaned Packages を zypper で削除しろ、とあります。yast > Software Management からも、実行できますが、量が多いのでこれは、zypper で処理します。

# zypper rm $(zypper --no-refresh packages --orphaned | gawk '{print $5}' | tail -n +5)

openSUSE Leap 15.3(beta), How to Migrate to SUSE Linux Enterprise 15sp3, SLES15sp3 へのマイグレート_a0056607_15304034.png

しかし、この後、悲劇が起こります。

「起動できなくなった!」

終了です。


何度か試しましたが、起動できなくなる現象の再現性は高いようです。

-- 追記

zypper からマイグレーションする方法を説明してきましたが、インストーラから Update オプションでマイグレーションする方法もあります。単なるパッケージのアップデートではないので、こちらの方が綺麗にマイグレートできました。 Orphaned Packages の削除はやっぱりダメでした。

openSUSE Leap 15.3(beta), How to Migrate to SUSE Linux Enterprise 15sp3, SLES15sp3 へのマイグレート_a0056607_10301102.png

-- まとめ

openSUSE Leap 15.3 beta から SLE 15sp3 beta のベータ版同士でマイグレーションできるかどうか、テストしてみました。 Upgrade Guide にある方法、リポジトリの切り替えから、zypper dupによるマイグレーションは、手元の環境では、機材、回線容量の問題で不可能です。そこで、SLE のフルインストールDVDイメージを代替として使いました。多くの点、openSUSE Leap の名残が残っていましたが、概ね大きな問題もなくマイグレーションできました。再起動は一回だけです。実質数十秒間のサービス停止です。運が良ければ....

今回はドキュメント手順でやってみましたが、インストールDVD起動による Upgrade オプションによる、上書きマイグレーションという手段もあります。こちらの方でも空き容量を大きく確保する必要があります。

ただし Orphaned Packages の削除をしたら、確実に壊れます。アップグレードガイドの記載に間違えがあるのか、私の手順に致命的な間違えがあったのかはわかりません。分かる方のコメントお待ちしています。Orpaned Packages の削除は、端折っている記事もありました。やらない方が無難です。

Do not remove Orphaned Packages, That's makes you trouble !

幾つか openSUSE の残骸のような、当たり前ですが、マイグレーション前の openSUSE の設定の残滓のようなものが残ります。当たり前ですが完全な形で SLE に移行できるものではないという事です。

もし移行が簡単なシステムであれば、完全に SLE をフルインストールしてデータと設定を戻した方が、スッキリするでしょう。KVM などのハイパーバザー上の環境なら、仮想イメージのバックアップをしっかりとってから実施すべきです。ベアメタル環境なら、やれと言われない限り、私はやりたいとは思いません。カーネルやドライバーなどの互換性が気になります。

また、全てのパッケージがアップデートされることによるソフトウェア的な問題点もあります。

--

やっぱり、大幅なパッケージのアップデートやマイグレーションは、パーティションの設計と空き容量の確保が重要です。今回は 3.5Gb ほど使用容量が増えました。私ならお約束の様に、/srv や /var, /home はシステムとは別パーテションにして50Gb程度の未使用の空きを将来のために残しておくでしょう。それバラ新規にシステムをインストールできます。

--

なるほど、オープンフリーなディストリビューションから、有償のサポート付きディストリビューションに移行できる、というのは、利用者にとっても利便性が上がるよな、と感じます。CentOS から RHEL へのマイグレーションはできないけれど、openSUSE Leap なら SLE へ移行できるわけですから。







by islandcenter | 2021-04-22 15:44 | SUSE | Comments(0)