Upload
etsuji-nakai
View
3.808
Download
1
Embed Size (px)
Citation preview
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版では仕様が変更される可能性があります。
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/
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/binlrwxrwxrwx. 1 root root 8 Jan 9 19:38 home -> var/homelrwxrwxrwx. 1 root root 7 Jan 9 19:38 lib -> usr/liblrwxrwxrwx. 1 root root 9 Jan 9 19:38 lib64 -> usr/lib64lrwxrwxrwx. 1 root root 9 Jan 9 19:38 media -> run/medialrwxrwxrwx. 1 root root 7 Jan 9 19:38 mnt -> var/mntlrwxrwxrwx. 1 root root 7 Jan 9 19:38 opt -> var/optlrwxrwxrwx. 1 root root 14 Jan 9 19:38 ostree -> sysroot/ostreelrwxrwxrwx. 1 root root 12 Jan 9 19:38 root -> var/roothomelrwxrwxrwx. 1 root root 8 Jan 9 19:38 sbin -> usr/sbinlrwxrwxrwx. 1 root root 7 Jan 9 19:38 srv -> var/srvlrwxrwxrwx. 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
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