2018/10/28トランザクショナルアップデート― Btrfs を活用したパッケージ更新 1/16
トランザクショナルアップデート
― Btrfs を活用したパッケージ更新方法
OpenStack アップストリーム開発者が語る、
オープンソース開発の裏話
武山 文信、井川 征幸
日本 openSUSE ユーザ会
2018/10/28トランザクショナルアップデート― Btrfs を活用したパッケージ更新 2/16
本日の内容
●
10分: トランザクショナルアップデート
― Btrfs を活用したパッケージ更新方法
●
30分: OpenStack アップストリーム開発者が語る、
オープンソース開発の裏話
2018/10/28トランザクショナルアップデート― Btrfs を活用したパッケージ更新 3/16
みなさん
って何かご存知ですか?
2018/10/28トランザクショナルアップデート― Btrfs を活用したパッケージ更新 4/16
正しいのはどれ? (省略)
●
1. サーバールームでモフモフできるカメレオン型ガジェット
●
2. Ruby で簡単に Web アプリを作れるフレームワーク
●
3. 20年以上前にドイツで生まれた Linux ディストリビューション
2018/10/28トランザクショナルアップデート― Btrfs を活用したパッケージ更新 5/16
正解: 3
●
3. 20年以上前にドイツで生まれた Linux ディストリビューション
– 1996 年: S.u.S.E Linux 4.2 リリース
●
これ以前は Slackware + 設定ツールでした
●
Q: RedHat 系ですか? Debian 系ですか?
A: どちらでもありません! Slackware系でもありません
●
Q: OpenSUSE ですか?openSUSE ですか?
A: o は小文字です。IPhone ではなく、iPhone なのと同じです
2018/10/28トランザクショナルアップデート― Btrfs を活用したパッケージ更新 6/16
YaST でかんたん設定
SSH からもアクセスできる TUI 版→
●
ソフトウェアのインストール
ハードディスクとファイルシステムの設定
●
ネットワークの設定
●
Samba サーバーの設定
●
ユーザの追加…
詳しくは OSC Kansai/Kyoto 2015の資料を参照: http://www.slideshare.net/ftake/ok-yastlinux
2018/10/28トランザクショナルアップデート― Btrfs を活用したパッケージ更新 7/16
2つの openSUSE
Tumbleweed
常に最新 安定
新しいカーネルやライブラリを使いたい人
アプリケーションのテスト環境
有償サポートが不要な人
普段遣いのデスクトップやサーバーに
2018/10/28トランザクショナルアップデート― Btrfs を活用したパッケージ更新 8/16
openSUSE Leap 15.0
●
SUSE Linux Enterprise 15 ベースの安定志向
ディストリビューション
– 年に1回のマイナーアップデート(サービスパック)
●
(15.1, 15.2, 15.3, ...)
– 3年に1度程度のメジャーアップデート
●
エンタープライズ版に openSUSE 独自のパッケージを追加
– デスクトップ環境:
Plasma 5.12, GNOME 3.26, XFCE 4.12, MATE, LXQt, etc.
●
1つ前のバージョンは 42.3 でした
– 戻ったので注意!
– 42.3 は2019年6月末までサポート
CentOS + Fedora
のような感じ
2018/10/28トランザクショナルアップデート― Btrfs を活用したパッケージ更新 9/16
2018/10/28トランザクショナルアップデート― Btrfs を活用したパッケージ更新 10/16
Leap 15.0 の新機能
トランザクショナルアップデート 1/2
●
これまでのパッケージのアップデートの課題
アップデート中にシステムが一時的に不完全になる
– パッケージを1個1個更新するため
●
アップデート中は運用中のサービスを止める必要がある
/ libB.so libC.so/usr/bin/A
Updated
削除済み
アップデート待ち
古いファイルを参照
libB.so
2018/10/28トランザクショナルアップデート― Btrfs を活用したパッケージ更新 11/16
Leap 15.0 の新機能
トランザクショナルアップデート 2/2
●
方法: Btrfs のスナップショットに対してアップデートを行い、
すべてアップデートした後にルートファイルシステムを
一度に切り替える
●
Btrfs スナップショット
– ファイルシステムの複製
– CoW により、余計な容量を消費しない(後述)
libB.so libC.so/usr/bin/A libB.so libC.so/usr/bin/A
Updated Updated
(1)スナップショット
(2) アップデート
(3) / を切り替え
2018/10/28トランザクショナルアップデート― Btrfs を活用したパッケージ更新 12/16
スナップショット
ステップ1:
スナップショットを撮る
●
/ が複製されたように見えるが、
ストレージ上のデータは同じものを参照
– 瞬時にスナップショットが作成される
ストレージ上の
データ
/ libB.so libC.so/usr/bin/A
/usr/bin/A libB.so libC.so
2018/10/28トランザクショナルアップデート― Btrfs を活用したパッケージ更新 13/16
スナップショット
ステップ2:
スナップショット上のファイルを更新する
●
古いライブラリはそのままなので、サービスを止める必要なし
●
CoW: Copy on Write
– 書き込み時にファイルのデータを複製
ストレージ上の
データ
/ libB.so libC.so/usr/bin/A
実行中
/usr/bin/A libB.so libC.so
Updated Updated
古いファイル
2018/10/28トランザクショナルアップデート― Btrfs を活用したパッケージ更新 14/16
ステップ3:
/ を入れ替える
●
再起動し、更新したスナップショットを / としてマウントする
●
前のバージョンにロールバックも可能
/
ストレージ上の
データ
スナップショット
古い (/)
libB.so libC.so/usr/bin/A
/usr/bin/A libB.so libC.so
Updated Updated
2018/10/28トランザクショナルアップデート― Btrfs を活用したパッケージ更新 15/16
その他の新機能は…
●
コミックマーケットC94で頒布
●
内容
– openSUSE Leap 15.0
– Portus で Docker レジストリ
– openSUSE で OneDirve を使う
– 小説
– Web サイトのパフォーマンス分析
●
ブースで販売中
●
openSUSE mini Summit の資料もぜ
ひチェックしてみて下さい
– https://www.slideshare.net/ftake
New!
2018/10/28トランザクショナルアップデート― Btrfs を活用したパッケージ更新 16/16
次は
OpenStack アップストリーム開発者が語る、
オープンソース開発の裏話

トランザクショナルアップデート ― Btrfsを活用したパッケージ更新方法