RHEL Atomic Hostのご紹介
Red Hat Enterprise Linux Atomic Host
のご紹介
レッドハット株式会社
v1.1 2015-02-09
2
RHEL Atomic Hostのご紹介
自己紹介
 中井悦司(なかいえつじ)
– Twitter @enakai00
 日々の仕事
– Senior Solution Architect and
Cloud Evangelist at Red Hat K.K.
企業システムでオープンソースの活用を希望される
お客様を全力でご支援させていただきます。
 昔とった杵柄
– 素粒子論の研究(超弦理論とか)
– 予備校講師(物理担当)
– インフラエンジニア(Unix/Linux専門)
好評発売中!
3
RHEL Atomic Hostのご紹介
Contents
 Red Hat Enterprise Linux Atomic Host の概要
 Red Hat Enterprise Linux Atomic Host の特徴
 参考資料
(*) 本資料の内容は、Public Beta版のRHEL Atomic Hostの仕様に基づいています。
  GA版では仕様が変更される可能性があります。
RHEL Atomic Hostのご紹介
Red Hat Enterprise Linux
Atomic Host の概要
5
RHEL Atomic Hostのご紹介
Dockerに対するRed Hatの貢献
 Red Hatの開発協力により、RHEL対応とさらなる機能拡張を継続
– RHEL7での正式サポート
– RHELのThin Provisioning機能対応(ディスク性能の向上)
– RHEL7のプロセス管理機能(systemd)との統合
– Docker専用Linuxディストリビューションの提供
6
RHEL Atomic Hostのご紹介
RHEL Atomic Hostとは?
 Red Hat Enterprise Linux 7をベースに、Dockerの実行環境として最適化
したLinuxディストリビューション
– Kubernetesで管理するための前提パッケージを追加
– Docker用に最適化したディスク構成でインストール
• Dockerイメージ保存領域を専用の論理ボリュームで構成
– Docker用のtunedプロファイル提供
– rpm-ostreeによる一括アップデート機能
• RPMパッケージの個別管理が不要
• アップデート後のロールバック(以前のバージョンへの復帰)が可能
 アップストリームの開発プロジェクトは「PROJECT ATOMIC」
– http://www.projectatomic.io/
RHEL Atomic Hostのご紹介
Red Hat Enterprise Linux
Atomic Host の特徴
8
RHEL Atomic Hostのご紹介
RHEL Atomic Hostのディスク構成
 RHEL Atomic Hostインストール直後の論理ボリューム構成例
– ルートファイルシステム(3GB)、Swap領域以外は、すべてDockerイメージ保存領域として確保。
– Device Mapper Thin-Provisioning(dm-thin)で作成する「論理デバイス」のブロックプールとして
利用。
データ用デバイス(ブロックプール)
メタデータ用
デバイス
論理デバイスへの個々の
ブロックの割り当てを記録
# lvs
LV VG Attr LSize Pool Origin Data% Move Log Cpy%Sync Convert
docker-data rah_atomic01 -wi-ao---- 26.64g
docker-meta rah_atomic01 -wi-ao---- 36.00m
root rah_atomic01 -wi-ao---- 3.00g
swap rah_atomic01 -wi-ao---- 2.03g
Docker
イメージ
論理デバイス#1 ・・・
Docker
イメージ
論理デバイス#2
データ用デバイスとして使用
メタデータ用デバイスとして使用
9
RHEL Atomic Hostのご紹介
(参考)dm-thinのスナップショット機能
 Dockerは、Dockerイメージのスナップショットコピーを多用しますが、RHEL Atomic
Host(RHEL7)対応のDockerでは、dm-thinのスナップショット機能を用いて、コピーを作
成します。
– 差分領域のみに新しいブロックが割り当てるため高速にコピーを取得すると共に、ディスク使用量を
節約する効果があります。
A B C
スナップショット作成直後
A B C A B C
ブロックプール
・・・ A B C D
A B C A B D
書き込み発生
・・・
ブロックプール
書き込んだ部分は
新しいブロックを割り当てる
10
RHEL Atomic Hostのご紹介
RHEL Atomic Hostのアップデート方法
 RHEL Atomic Host自体のアップデートは、次の「atomic」コマンドで実施します。
– RPMパッケージを個別に追加/アップデートすることはできません。ホスト全体として一括でバー
ジョンアップします。
– 以前のバージョンの構成も保存されているため、次のコマンドで以前のバージョンに戻すことも可能
です。
# atomic status
VERSION ID OSNAME REFSPEC
* 7.0.0 dcf0c846ff rhel-atomic-host rhel-atomic-host:...
# atomic upgrade
...
Updates prepared for next boot; run "systemctl reboot" to start a reboot
# reboot
# atomic status
VERSION ID OSNAME REFSPEC
* 7.0.1 18a9998c80 rhel-atomic-host rhel-atomic-host-beta-ostree:...
7.0.0 dcf0c846ff rhel-atomic-host rhel-atomic-host-beta-ostree:...
現在のバージョンを確認
最新バージョンにアップデート
再起動するとバージョンが変わっている
# atomic rollback 7.0.0
11
RHEL Atomic Hostのご紹介
rpm-ostreeによるバージョン管理 (1)
 RHEL Atomic Hostのバージョンアップは、「rpm-ostree」の機能で実現されています。
– 複数バージョンのファイルを「内部リポジトリ」に保存してあり、ここから、各バージョンのルート
ファイルシステムを個別のディレクトリーに展開(デプロイ)します。
– システム起動時に特定バージョンのディレクトリーにchrootします。
 特に、/usrはリードオンリーでマウントされるようになっており、複数バージョンで共通の
ファイルは、内部リポジトリの同一ファイルへのハードリンクとして展開されます。
– 複数バージョンの内容を同時に保持してもディスクの使用量が節約されるようになっています。
– このため、/usr以下にファイルを追加することはできません。Docker専用環境のためアプリケーショ
ンの追加などは想定されていません。
/sysroot/ostree/repo
/sysroot/ostree/deploy/<v7.0.0>
デプロイ
/sysroot/ostree/deploy/<v7.0.1>
デプロイ
内部リポジトリ
起動時にchrootでルート
ファイルシステムを選択
12
RHEL Atomic Hostのご紹介
rpm-ostreeによるバージョン管理 (2)
 /var以下はバージョン管理の対象外となっており、/var以下に保存したファイルは、バー
ジョンアップをしてもそのまま残ります。
– 下図のように、いくつかのディレクトリーは、/var以下へのシンボリックリンクになっています。
 /etc以下はバージョンごとに個別に用意されますが、バージョンアップの際、既存の設定内
容(デフォルトから変更しているファイル)は、新バージョンのディレクトリーにコピーさ
れます。
– バージョンごとにディレクトリーが分かれているので、過去のバージョンにロールバックした際は、
過去の設定内容に戻ります。
# ls -l / | grep '^l'
lrwxrwxrwx. 1 root root 7 Jan 9 19:38 bin -> usr/bin
lrwxrwxrwx. 1 root root 8 Jan 9 19:38 home -> var/home
lrwxrwxrwx. 1 root root 7 Jan 9 19:38 lib -> usr/lib
lrwxrwxrwx. 1 root root 9 Jan 9 19:38 lib64 -> usr/lib64
lrwxrwxrwx. 1 root root 9 Jan 9 19:38 media -> run/media
lrwxrwxrwx. 1 root root 7 Jan 9 19:38 mnt -> var/mnt
lrwxrwxrwx. 1 root root 7 Jan 9 19:38 opt -> var/opt
lrwxrwxrwx. 1 root root 14 Jan 9 19:38 ostree -> sysroot/ostree
lrwxrwxrwx. 1 root root 12 Jan 9 19:38 root -> var/roothome
lrwxrwxrwx. 1 root root 8 Jan 9 19:38 sbin -> usr/sbin
lrwxrwxrwx. 1 root root 7 Jan 9 19:38 srv -> var/srv
lrwxrwxrwx. 1 root root 11 Jan 9 19:38 tmp -> sysroot/tmp
13
RHEL Atomic Hostのご紹介
Atomic Host専用tunedプロファイル
 tunedは、Linuxの各種パラメータを環境に応じて自動チューニングするサービスです。サー
バーの使用目的に応じて、プロファイルを選択してチューニング方針を変更することができ
ます。
 RHEL Atomic Hostでは、Docker環境専用のプロファイルが2種類用意されています。
– atomic-guest : 仮想マシン上でRHEL Atomic Hostを使用する際に自動選択されます。
– atomic-host : 物理ホスト上でRHEL Atomic Hostを使用する際に自動選択されます。
– それぞれ、virtual-guest / latency-performance プロファイルをベースに下図の追加設定が行われ
ます。
[selinux]
avc_cache_threshold=65536
RHEL Atomic Hostのご紹介
参考資料
15
RHEL Atomic Hostのご紹介
参考資料
 RHEL Atomic Hostのバージョン管理方式
– http://d.hatena.ne.jp/enakai00/20150110/1420852188
 Docker専用のLinux - RHEL Atomic Hostが登場!(パート1)
– http://www.school.ctc-g.co.jp/columns/nakai/nakai58.html
 Docker専用のLinux - RHEL Atomic Hostが登場!(パート2)
– http://www.school.ctc-g.co.jp/columns/nakai/nakai59.html
 Docker専用のLinux - RHEL Atomic Hostが登場!(パート3)
– http://www.school.ctc-g.co.jp/columns/nakai/nakai60.html
RHEL Atomic Hostのご紹介
Thank you

RHEL Atomic Hostのご紹介

  • 1.
    RHEL Atomic Hostのご紹介 RedHat Enterprise Linux Atomic Host のご紹介 レッドハット株式会社 v1.1 2015-02-09
  • 2.
    2 RHEL Atomic Hostのご紹介 自己紹介 中井悦司(なかいえつじ) – Twitter @enakai00  日々の仕事 – Senior Solution Architect and Cloud Evangelist at Red Hat K.K. 企業システムでオープンソースの活用を希望される お客様を全力でご支援させていただきます。  昔とった杵柄 – 素粒子論の研究(超弦理論とか) – 予備校講師(物理担当) – インフラエンジニア(Unix/Linux専門) 好評発売中!
  • 3.
    3 RHEL Atomic Hostのご紹介 Contents Red Hat Enterprise Linux Atomic Host の概要  Red Hat Enterprise Linux Atomic Host の特徴  参考資料 (*) 本資料の内容は、Public Beta版のRHEL Atomic Hostの仕様に基づいています。   GA版では仕様が変更される可能性があります。
  • 4.
    RHEL Atomic Hostのご紹介 RedHat Enterprise Linux Atomic Host の概要
  • 5.
    5 RHEL Atomic Hostのご紹介 Dockerに対するRedHatの貢献  Red Hatの開発協力により、RHEL対応とさらなる機能拡張を継続 – RHEL7での正式サポート – RHELのThin Provisioning機能対応(ディスク性能の向上) – RHEL7のプロセス管理機能(systemd)との統合 – Docker専用Linuxディストリビューションの提供
  • 6.
    6 RHEL Atomic Hostのご紹介 RHELAtomic Hostとは?  Red Hat Enterprise Linux 7をベースに、Dockerの実行環境として最適化 したLinuxディストリビューション – Kubernetesで管理するための前提パッケージを追加 – Docker用に最適化したディスク構成でインストール • Dockerイメージ保存領域を専用の論理ボリュームで構成 – Docker用のtunedプロファイル提供 – rpm-ostreeによる一括アップデート機能 • RPMパッケージの個別管理が不要 • アップデート後のロールバック(以前のバージョンへの復帰)が可能  アップストリームの開発プロジェクトは「PROJECT ATOMIC」 – http://www.projectatomic.io/
  • 7.
    RHEL Atomic Hostのご紹介 RedHat Enterprise Linux Atomic Host の特徴
  • 8.
    8 RHEL Atomic Hostのご紹介 RHELAtomic Hostのディスク構成  RHEL Atomic Hostインストール直後の論理ボリューム構成例 – ルートファイルシステム(3GB)、Swap領域以外は、すべてDockerイメージ保存領域として確保。 – Device Mapper Thin-Provisioning(dm-thin)で作成する「論理デバイス」のブロックプールとして 利用。 データ用デバイス(ブロックプール) メタデータ用 デバイス 論理デバイスへの個々の ブロックの割り当てを記録 # lvs LV VG Attr LSize Pool Origin Data% Move Log Cpy%Sync Convert docker-data rah_atomic01 -wi-ao---- 26.64g docker-meta rah_atomic01 -wi-ao---- 36.00m root rah_atomic01 -wi-ao---- 3.00g swap rah_atomic01 -wi-ao---- 2.03g Docker イメージ 論理デバイス#1 ・・・ Docker イメージ 論理デバイス#2 データ用デバイスとして使用 メタデータ用デバイスとして使用
  • 9.
    9 RHEL Atomic Hostのご紹介 (参考)dm-thinのスナップショット機能 Dockerは、Dockerイメージのスナップショットコピーを多用しますが、RHEL Atomic Host(RHEL7)対応のDockerでは、dm-thinのスナップショット機能を用いて、コピーを作 成します。 – 差分領域のみに新しいブロックが割り当てるため高速にコピーを取得すると共に、ディスク使用量を 節約する効果があります。 A B C スナップショット作成直後 A B C A B C ブロックプール ・・・ A B C D A B C A B D 書き込み発生 ・・・ ブロックプール 書き込んだ部分は 新しいブロックを割り当てる
  • 10.
    10 RHEL Atomic Hostのご紹介 RHELAtomic Hostのアップデート方法  RHEL Atomic Host自体のアップデートは、次の「atomic」コマンドで実施します。 – RPMパッケージを個別に追加/アップデートすることはできません。ホスト全体として一括でバー ジョンアップします。 – 以前のバージョンの構成も保存されているため、次のコマンドで以前のバージョンに戻すことも可能 です。 # atomic status VERSION ID OSNAME REFSPEC * 7.0.0 dcf0c846ff rhel-atomic-host rhel-atomic-host:... # atomic upgrade ... Updates prepared for next boot; run "systemctl reboot" to start a reboot # reboot # atomic status VERSION ID OSNAME REFSPEC * 7.0.1 18a9998c80 rhel-atomic-host rhel-atomic-host-beta-ostree:... 7.0.0 dcf0c846ff rhel-atomic-host rhel-atomic-host-beta-ostree:... 現在のバージョンを確認 最新バージョンにアップデート 再起動するとバージョンが変わっている # atomic rollback 7.0.0
  • 11.
    11 RHEL Atomic Hostのご紹介 rpm-ostreeによるバージョン管理(1)  RHEL Atomic Hostのバージョンアップは、「rpm-ostree」の機能で実現されています。 – 複数バージョンのファイルを「内部リポジトリ」に保存してあり、ここから、各バージョンのルート ファイルシステムを個別のディレクトリーに展開(デプロイ)します。 – システム起動時に特定バージョンのディレクトリーにchrootします。  特に、/usrはリードオンリーでマウントされるようになっており、複数バージョンで共通の ファイルは、内部リポジトリの同一ファイルへのハードリンクとして展開されます。 – 複数バージョンの内容を同時に保持してもディスクの使用量が節約されるようになっています。 – このため、/usr以下にファイルを追加することはできません。Docker専用環境のためアプリケーショ ンの追加などは想定されていません。 /sysroot/ostree/repo /sysroot/ostree/deploy/<v7.0.0> デプロイ /sysroot/ostree/deploy/<v7.0.1> デプロイ 内部リポジトリ 起動時にchrootでルート ファイルシステムを選択
  • 12.
    12 RHEL Atomic Hostのご紹介 rpm-ostreeによるバージョン管理(2)  /var以下はバージョン管理の対象外となっており、/var以下に保存したファイルは、バー ジョンアップをしてもそのまま残ります。 – 下図のように、いくつかのディレクトリーは、/var以下へのシンボリックリンクになっています。  /etc以下はバージョンごとに個別に用意されますが、バージョンアップの際、既存の設定内 容(デフォルトから変更しているファイル)は、新バージョンのディレクトリーにコピーさ れます。 – バージョンごとにディレクトリーが分かれているので、過去のバージョンにロールバックした際は、 過去の設定内容に戻ります。 # ls -l / | grep '^l' lrwxrwxrwx. 1 root root 7 Jan 9 19:38 bin -> usr/bin lrwxrwxrwx. 1 root root 8 Jan 9 19:38 home -> var/home lrwxrwxrwx. 1 root root 7 Jan 9 19:38 lib -> usr/lib lrwxrwxrwx. 1 root root 9 Jan 9 19:38 lib64 -> usr/lib64 lrwxrwxrwx. 1 root root 9 Jan 9 19:38 media -> run/media lrwxrwxrwx. 1 root root 7 Jan 9 19:38 mnt -> var/mnt lrwxrwxrwx. 1 root root 7 Jan 9 19:38 opt -> var/opt lrwxrwxrwx. 1 root root 14 Jan 9 19:38 ostree -> sysroot/ostree lrwxrwxrwx. 1 root root 12 Jan 9 19:38 root -> var/roothome lrwxrwxrwx. 1 root root 8 Jan 9 19:38 sbin -> usr/sbin lrwxrwxrwx. 1 root root 7 Jan 9 19:38 srv -> var/srv lrwxrwxrwx. 1 root root 11 Jan 9 19:38 tmp -> sysroot/tmp
  • 13.
    13 RHEL Atomic Hostのご紹介 AtomicHost専用tunedプロファイル  tunedは、Linuxの各種パラメータを環境に応じて自動チューニングするサービスです。サー バーの使用目的に応じて、プロファイルを選択してチューニング方針を変更することができ ます。  RHEL Atomic Hostでは、Docker環境専用のプロファイルが2種類用意されています。 – atomic-guest : 仮想マシン上でRHEL Atomic Hostを使用する際に自動選択されます。 – atomic-host : 物理ホスト上でRHEL Atomic Hostを使用する際に自動選択されます。 – それぞれ、virtual-guest / latency-performance プロファイルをベースに下図の追加設定が行われ ます。 [selinux] avc_cache_threshold=65536
  • 14.
  • 15.
    15 RHEL Atomic Hostのご紹介 参考資料 RHEL Atomic Hostのバージョン管理方式 – http://d.hatena.ne.jp/enakai00/20150110/1420852188  Docker専用のLinux - RHEL Atomic Hostが登場!(パート1) – http://www.school.ctc-g.co.jp/columns/nakai/nakai58.html  Docker専用のLinux - RHEL Atomic Hostが登場!(パート2) – http://www.school.ctc-g.co.jp/columns/nakai/nakai59.html  Docker専用のLinux - RHEL Atomic Hostが登場!(パート3) – http://www.school.ctc-g.co.jp/columns/nakai/nakai60.html
  • 16.