Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

第4回コンテナ型仮想化勉強会@東京 Oracle Solaris のコンテナ技術「Solaris Zones」

5,185 views

Published on

第4回コンテナ型仮想化勉強会@東京で使用した Oracle Solaris のコンテナ技術「Solaris Zones」資料です。

Published in: Software
  • Sex in your area is here: ❶❶❶ http://bit.ly/2Q98JRS ❶❶❶
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Follow the link, new dating source: ❶❶❶ http://bit.ly/2Q98JRS ❶❶❶
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

第4回コンテナ型仮想化勉強会@東京 Oracle Solaris のコンテナ技術「Solaris Zones」

  1. 1. 第4回コンテナ型仮想化の情報交換@東京 Oracle Solaris Zones Oracle Solaris のコンテナ技術 Kazuyuki Sato September 06, 2014 Corydoras armatus (Günther, 1868)
  2. 2. Agenda Ø ⾃自⼰己紹介:@satokaz Ø Oracle Solaris Zones Ø Oracle Solaris Resource Manager Ø Oracle Solaris 11.2 における機能強化 2
  3. 3. @satokaz ⾃自⼰己紹介 • 某社で製品情報を左から右に流流す仕事に従事 – Solaris とか Solaris とか Solaris とか • ⽔水槽の前に座って熱帯⿂魚に話かけるのが得意。返事はない。 – コリドラス(なまず)が可愛くていつも⽔水槽の前で死にかけている – AQUA LIFE が愛読書 • 最近の悩み:OpenStack について聞かれる。Solaris 担当なのに。 3
  4. 4. SPARC/Solaris の仮想化機能 Hypervisor HV (HV)Hypervisor (HV) PDom Multiple OS Single OS App OS Server Hypervisor (HV) Hard Partition (PDoms : Physical Domains) Oracle VM Server (LDoms : Logical Domains) Solaris ZonesResource Manager M6-‐‑‒32 Series T-‐‑‒Series M6-‐‑‒32 Series T-‐‑‒Series M6-‐‑‒32 Series T-‐‑‒Series M6-‐‑‒32 Series HV PDom HV PDom
  5. 5. Project Blackbox コンテナ型データーセンター • 1 コンテナ約5000万円 • Sun Modular Datacenter 5
  6. 6. Oracle Solaris Zones Ø Na$ve Zones 6
  7. 7. Oracle Solaris Zones について アプリケーション実⾏行行環境であること • 統合技術(コンソリデーション) – 1960年年代から開発されている技術になり、メインフレーム環境において⼀一般 的な技術 • 実⾏行行されている環境を変えないようにする – ゾーンの基本的な設計原則の1つ。アプリケーションがセキュリティや隔離離の ⽬目標を達成するために必要な場合を除いて、実⾏行行されている環境を変えない ようにすること • アプリケーションを「移植」する必要はない – ゾーンは、新しい API や ABI を提⽰示しない代わりに、いくつかの制限付きの Solaris API/ABI インタフェースを提供 7
  8. 8. Oracle Solaris Zones について Solaris Zones の開発⽬目標 (2003 年年代) • セキュリティ(Security) – ネットワークサービスを分離離し、システム全体に及ばない権限のサブセットを提供 • 隔離離(Isolation) – 複数のアプリケーションを異異なる信頼された領領域で実⾏行行すると共に、グローバルリソースへ の排他的アクセスを提供 • 仮想化(Virtualization) – アプリケーションへの物理理デバイスや物理理ホスト情報を隠蔽する仮想化環境を提供 • 粒粒度度(Granularity) – 物理理パーティショニングと違いリソースを細かく分配可能に • 透過性(Transparency) – アプリケーションの移植を必要としない 8
  9. 9. Oracle Solaris Zones について アイソレーションのアプローチ アプローチ メモ chroot古くから利利⽤用されるプロセスのアイソレーション⽅方法となるが、それ以外の ものは隔離離できない jailschroot ライクであり、ファイルシステムなどもアイソレーション可能 Trusted Operating SystemセキュアOS としての要件を満たすアプローチ Hardware または Logical Partitioning 2003 年年頃。logical partitions for SPARC の実装を別プロジェクトで実施中。 後の Ldoms (Oracle VM for SPARC) 9 • Solaris ゾーンは、jails の基本的な考え⽅方に基づいて実装されている – さらに OS に統合し包括的な機能として提供できるよう概念念を独⾃自に拡張
  10. 10. Oracle Solaris Zones 組み込まれた仮想化機能 • 単⼀一システム上に複数の 隔離離されたランタイム環境(Solaris インスタンス )を提供する機能 • ゾーンは⼤大きく 2 種類に区分 ü ⼤大域ゾーン (global zone) • オペレーティングシステムの実体 ü ⾮非⼤大域ゾーン (non-global zone) • ⼤大域ゾーン上で動作するアプリケーション 実⾏行行環境 • ⼤大域ゾーンとカーネルを共有 • ⾮非⼤大域ゾーン間は完全に隔離離 • 最⼤大 8192 個 (⼤大域ゾーン含む) 作成可能 zone01 zone02 zone03 net0:1 zcons /usr net0:2 /data /usr net1 /data /usr zoneadmd zoneadmd zoneadmd ゾーン管理理 (zonecfg, zoneadm, zlogin, etc) C C C C Virtual Platform /data zcons zcons
  11. 11. Oracle Solaris Zones ネームスペース(名前空間)のアイソレーションを⽬目的とした実装 – ネームスペースの分割 • users, root, IP addresses, ports, filesystem, ... • Possibility for different name services (LDAP, ...) – ⾃自分⾃自⾝身以外の環境は⾒見見えない • ps, /proc, prstat, ... only show local processes • No sharing memory other than local to the zone – ファイルシステムの分割 • Private piece of disk for identity application • Shared read-only to underlying OS (/lib,/usr,...) 11
  12. 12. Oracle Solaris Zones ファイルシステム 疎ルートゾーン (sparse root zones) ⼤大域ゾーン(global zones) 完全ルートゾーン (whole root zones) / /usr /lib /platform /zones /export /sbin /zone01 /root /dev /etc /var /zone02 /dev /root / (local, iscsi, fc …) /usr /platform /sbin /lib /export /etc /var ⼀一部のファイルシステム を読み取り専⽤用で継承 /opt /opt / /usr /platform /sbin /lib /export /etc /var /opt 疎ルートゾーンは Solaris 10 のみ利利⽤用可能Solaris 11 以降降は完全ルートゾーンのみ利利⽤用可能
  13. 13. Oracle Solaris Zones ネットワーク • 共有IP (shared IP)ゾーン – デフォルトのネットワークタイプ – ⼤大域ゾーンと物理理ネットワークを共有 – Oracle Solaris 10 10/08よりデフォルト ルータを⾮非⼤大域ゾーン毎に設定可能 • 排他的IP (exclusive IP)ゾーン – Oracle Solaris 10 8/07 新機能 – ⾮非⼤大域ゾーンに専⽤用の物理理ネットワー クを割り当て – GLDv3に対応したNICが必要 – Solaris 11 では仮想 NIC を割当可能に IPスタックを⼤大域 ゾーンと共有独⽴立立したIPスタック ⼤大域ゾーン⾮非⼤大域ゾーン⾮非⼤大域ゾーン net1 net0:1 net0:0 共有IP 排他的IP
  14. 14. Oracle Solaris Zones セキュリティ • 各⾮非⼤大域ゾーンからは独⽴立立したOSが動作している様に⾒見見える • ⾮非⼤大域ゾーンは他のゾーンの存在を意識識できない ⾮非⼤大域ゾーン(zone02) ⾮非⼤大域ゾーン(zone03) ⾮非⼤大域ゾーン(zone01) ⼤大域ゾーン(global) ⾮非⼤大域ゾーンの障害 や再起動は他に影響 を与えない ⼤大域ゾーンは⾮非⼤大 域ゾーンへのコン ソール機能を提供 P P P P P P P P P ⾮非⼤大域ゾーン間、 ⼤大域ゾーンへの 侵⼊入は不不可
  15. 15. Oracle Solaris Zones セキュリティ • ⾮非⼤大域ゾーンのセキュリティは特権(privileges)によって管理理 • Oracle Solaris 10 11/06より特権の変更更が可能 • ⾮非⼤大域ゾーンで以下の特権は使⽤用禁⽌止 – dtrace_kernel – proc_zone – sys_config – sys_devices – sys_linkdir – sys_net_config – sys_res_config – sys_suser_compat 㠀኱ᇦ䝌䞊䞁(zone03) P P P 㠀኱ᇦ䝌䞊䞁(zone02) P P P ኱ᇦ䝌䞊䞁(global) 㠀኱ᇦ䝌䞊䞁(zone01) P P P P P P
  16. 16. Oracle Solaris Zones Oracle Solaris 11 Zones • Oracle Solaris Zones がより進化 – Solaris のパッケージ管理理システム IPS の柔軟性を 利利⽤用したソフトウェア管理理 – NFS サーバ機能をサポート – 特定のユーザへ管理理権限を委譲可能 – ネットワークスタックを共有しない排他的 IP ゾーン がデフォルトに • ネットワーク仮想化機能 crossbow との連携 – Read only の Zone をサポート – Oracle Solaris 10 Zones をサポート • アプリケーションを動作させる標準環境としての実績は⼗十分
  17. 17. Oracle Solaris Zones Solaris 11䛷฼⏝ྍ⬟䛺㠀኱ᇦ䝌䞊䞁✀ู • Solaris 11䛷䝃䝫䞊䝖䛥䜜䜛㠀኱ᇦ䝌䞊䞁 – solaris (SPARC/x86㻌䛷฼⏝ྍ⬟) • Solaris 11㻌⎔ቃ䜢ᥦ౪ – solaris10 (SPARC/x86, ㏣ຍ䝷䜲䝉䞁䝇䛿ᚲせ䛺䛧) • Solaris 10 ⎔ቃ䜢ᥦ౪ • 䛩䛷䛻ືస䛧䛶䛔䜛㻌Solaris 10 ᐇ⎔ቃ䛛䜙䛾㻌P2V • 䝥䝻䝉䝑䝃䜰䞊䜻䝔䜽䝏䝱䛾ቨ䛿㉺䛘䜙䜜䛺䛔䛜䚸 ྠ୍䜰䞊䜻䝔䜽䝏䝱䛷䛒䜜䜀䝝䞊䝗䜴䜵䜰䛾ቨ䛿 ✺◚ྍ⬟ Solaris 10 Solaris 10 s10z s10z Solaris 11
  18. 18. Oracle Solaris Zones 制限事項 • カーネル関連 – /etc/systemに設定するカーネルパラメータは⼤大域ゾーンから設定 – カーネルやデバイスに直接アクセスするアプリケーションは動作不不可 • プロセス – ⼤大域ゾーンからゾーン内の全てのプロセスを参照可能 • ネットワーク関連 – 共有IP構成では⾮非⼤大域ゾーンからQoS/IPMP/ルーティングなどは設定不不可 – ⾮非⼤大域ゾーンは NFS サーバにはなれない • ファイルシステム関連 – NFS上に⾮非⼤大域ゾーン(zonepath)は構築不不可
  19. 19. Oracle Solaris Zones Solaris Zones と Docker Solaris ZonesDocker コンピューターリソースの隔離離Namespace の分割による隔離離Linux Namespaces コンピューターリソースの制限Solaris Resource ManagerLinux cgroups ファイル/ディレクトリの差分管 理理 ZFS, ZFS snapshotAUFS/Device Mapper Thin Provisioning 他のホスト、他のコンテナーとの ネットワークの構成 Solaris 仮想ネットワーク機能 Linux iptables 19
  20. 20. Oracle Solaris Zones Solaris Zones 管理理コマンド 20 コマンド概要 zonecfgzones の構成管理理ユーティリティ zoneadmzones を管理理する(install, uninstall, boot, halt, shutdown, attach/detach, clone, etc…) zloginzones へのログインするために、ローカルシステム 上で利利⽤用 zonestatzone の統計情報、リソース利利⽤用情報を取得 No Zone delete create incomplete halt ready ready installed uninstall mark incomplete uninstall install ready boot halt boot mark incomplete reboot configured login running Zone zlogin zoneadm zonecfg
  21. 21. Oracle Solaris Zones • Solaris 11 Zones の構成例例 – シンプルな作成⼿手順 • 仮想NICの⽣生成まで含まれた最⼩小の構成⼿手順 # zonecfg -z testzone01 testzone01: No such zone configured Use 'create' to begin configuring a new zone. zonecfg:testzone01 create create: Using system default template 'SYSdefault' zonecfg:testzone01 set zonepath=/rpool/zones/testzone01 zonecfg:testzone01 set autoboot=true zonecfg:testzone01 commit zonecfg:testzone01 exit testzone01 Solaris 11 仮想 NIC net0 global zone Solaris 11 – シンプルな OS デプロイ # zoneadm -z testzone01 install # zoneadm -z testzone01 boot ; zlogin -C testzone01 [Connected to zone 'testzone01' console] [NOTICE: Zone booting up] SunOS Release 5.11 Version 11.0 64-bit Copyright (c) 1983, 2011, Oracle and/or its affiliates. All rights OSの設定画⾯面へ
  22. 22. Oracle Solaris Resource Manager 22
  23. 23. Oracle Solaris Resource Manager 概要 • ハードウェア資源の管理理機能 • 資源管理理の対象 – プロジェクト – タスク – プロセス – Oralce Solarisゾーン Oracle Solarisリソースマネージャ プロジェクト P P P P P P タスクタスク CPU CPU pset_proj pool_proj ⼤大域ゾーン ⾮非⼤大域ゾー ン ⾮非⼤大域ゾー ン CPU CPU pset_zone pool_zone P P P P P P Solaris 9以前Oracle Solaris 10 +
  24. 24. Oracle Solaris Resource Manager ゾーンでの資源管理理 – zone.cpu-shares – zone.cpu-cap – zone.max-swap – zone.max-locked-memory – zone.max-lofi – zone.max-lwps – zone.max-shm-memory – zone.max-shm-ids – zone.max-sem-ids – zone.max-msg-ids – zone.max-­‐processes
  25. 25. Oracle Solaris Resource Manager CPU資源 • 3つのCPU資源の管理理⽅方法 – 資源プール • CPU資源をグループ化して⾮非⼤大域ゾーンへ紐紐付ける単位 • プロセッサセットとスケジューリングクラスから構成 – capped-‐‑‒cpu資源 • Oracle Solaris 10 5/08以降降 • ⾮非⼤大域ゾーンで利利⽤用するCPU使⽤用率率率を指定 • 資源プールと併⽤用可能 – dedicated-‐‑‒cpu資源 • Oracle Solaris 10 8/07以降降 • CPUの⼀一部を⾮非⼤大域ゾーン専⽤用として割り当て • 資源プール/capped-‐‑‒cpu資源との併⽤用は不不可
  26. 26. Oracle Solaris Resource Manager 資源プール • プロセッサセット – CPU *1の集合体 • スケジューリングクラス – FSS (Fair Share Scheduler) • ゾーンに設定するCPUシェア数 に基づいて資源プールを共有する ゾーン間でCPU資源を配分 – TS (Time Sharing) • Oracle Solaris標準スケジューラ • CPU資源をプロセス毎に平等に 配分 CPU CPU CPU CPU CPU CPU CPU CPU pset_zone pool_zone (FSS) pset_default pool_default ⾮非⼤大域ゾーン (zone02) ⾮非⼤大域ゾーン (zone01) ⼤大域ゾーン(global) 資源プールプロセッサセット *1 : OSが認識識可能な最⼩小単位
  27. 27. Oracle Solaris Resource Manager 資源プール • 複数の⾮非⼤大域ゾーンでプールを 共有可能 • 資源競合が発⽣生しない限り、⾮非 ⼤大域ゾーンはプール内の資源を 最⼤大限利利⽤用可能 zone01でプロセス を停⽌止0% 100% zone02でプロセス を起動 zone01でプロセス を起動 ⼤大域ゾーン(global) CPU CPU pset_default pool_default 20% 80% 100% 0% ⾮非⼤大域ゾーン ⾮非⼤大域ゾーン (zone01) (zone02) cpu-shares : 20 cpu-shares : 80 CPU CPU pset_zone pool_zone (FSS)
  28. 28. Oracle Solaris Resource Manager capped-cpu資源 • 1 CPUを100%として、⾮非⼤大域 ゾーンにおいて利利⽤用可能なCPU 使⽤用率率率を指定(少数点第⼆二位まで 指定可能) • 資源競合が発⽣生しない状況下に おいても指定された使⽤用率率率に制 限される • 資源プールと併⽤用可能 zone01でプロセス を起動50% CPU CPU pset_default pool_default (FSS) ⼤大域ゾーン(global) 1 / 2 (50%)の リソースを利利⽤用 ⾮非⼤大域ゾーン (zone02) ⾮非⼤大域ゾーン (zone01) ncpus : 1
  29. 29. Oracle Solaris Resource Manager dedicated-cpu資源 • ⾮非⼤大域ゾーンにおいて利利⽤用可能 なCPU数を指定(範囲指定する 場合は重要度度も設定) • 資源競合はなく、全ての資源を 利利⽤用可能 • テンポラリな資源プールを利利⽤用 • 資源プール/capped-cpu資源と の併⽤用は不不可 zone02でプロセス を起動 ⾮非⼤大域ゾーン(zone02) CPU CPU SUNWtmp_zone02 SUNWtmp_zone02 CPU CPU pset_default pool_default ⼤大域ゾーン (global) ⾮非⼤大域ゾーン (zone01) 100% 2 CPUリソース を占有 ncpus : 2 ⾮非⼤大域ゾーン起動時に資源が⾜足り ないと起動できません
  30. 30. Oracle Solaris Resource Manager 動的資源プール • CPU資源を範囲で指定 • 負荷状況と資源プールの重要 度度に応じて動的に資源を移動 • 資源プール/dedicated-cpu資 源で利利⽤用可能 25% 37.5% 50% 25% 25% ⼤大域ゾーン(global) CPU CPU pset_default pool_default 37.5% ⾮非⼤大域ゾーン (zone02) CPU CPU CPU pset_zone ⾮非⼤大域ゾーン (zone01) pool_zone (FSS) 負荷状況に応じて動的 にプール間で資源移動 システム全体で⾒見見た各ゾーンのCPU使⽤用率率率 cpu-shares : 50 cpu-shares : 50
  31. 31. Oracle Solaris Resource Manager メモリ資源 • ⾮非⼤大域ゾーンに対してメモリ 資源の上限値を指定 – capped-memory資源 • Oracle Solaris 10 8/07以降降 • 物理理メモリ(physical) • スワップメモリ(swap) • ロックメモリ(locked) • 他のゾーンへ与える影響を最 ⼩小限に抑える事が可能 1GB 1GB 5GB 2GB ⼤大域ゾーン (global) ⾮非⼤大域ゾーン (prod) ⾮非⼤大域ゾーン (devel) ⼤大域ゾーン (global) 1GB 2GB 3GB ⾮非⼤大域ゾーン (prod) ⾮非⼤大域ゾーン (devel) physical : 2GB P P P P P P P P P P P P P P P P P P 3GB swp mem swp mem 適切切なメモリ管理理と不不 本意な性能劣劣化を防⽌止
  32. 32. Oracle Solaris Resource Manager Sysmte V IPC関連パラメータ • /etc/systemに対するパラメータは⼤大域ゾーンからのみ設定可能 • ⾮非⼤大域ゾーン単位に指定可能なパラメータ – max-shm-memory (旧shmsys:shminfo_shmmax) • ⾮非⼤大域ゾーンに許容されるSystem V共有メモリ – max-shm-ids (旧shmsys:shminfo_shmmni) • ⾮非⼤大域ゾーンに許容されるSystem V共有メモリIDの最⼤大数 – max-sem-ids (旧semsys:seminfo_semmni) • ⾮非⼤大域ゾーンに許容されるセマフォIDの最⼤大数 – max-msg-ids (旧msgsys:msginfo_msgmni) • ⾮非⼤大域ゾーンに許容されるメッセージキューIDの最⼤大数
  33. 33. Oracle Solaris Zones まとめ • Oracle Solaris Zones とは? – Oracle Solaris Zones + Oracle Solaris Resource Manager を組み合わせたアプリケーション実⾏行行環境 – カーネルなど資源を共有することでインスタンスの 33
  34. 34. Oracle Solaris 11.2 における機能強化 Ø Kernel Zones 34
  35. 35. Native Zones Oracle Solaris 11.2 における機能強化 • Live Zone Reconfiguration (LZR) – リブートの必要なく稼働中の⾮非⼤大域ゾーンの構成変更更が可能に – 稼働中の⾮非⼤大域ゾーン構成情報をレポート • CMT aware Zones and Pools – ゾーンへの CPU/コア/スレッド割当を明確化 • OpenStack との統合 35
  36. 36. Engineered for Cloud Oracle Solaris 11.2 ⽶米国時間2014年年7⽉月31⽇日提供開始 • 2014/7/31 にプレスリリース発表および提供開始 • 同時に Oracle Solaris Cluster 4.2 をリリース • 2014/8/5 ⽇日本語抄訳リリースを提供予定 • 研究および開発⽬目的であれば無償利利⽤用可能
  37. 37. ゼロ・オーバーヘッド仮想化機能の更更なる強化 Solaris Kernel Zones n 37 追加された新たなブランド • Kernel Zones は、Type 2 ハイパーバイザー⽅方式と専⽤用ドライバによる準仮想化⽅方式を組み合わ せた実⾏行行環境を提供 – Solaris Zones の操作性および管理理性をそのままに、隔離離性をより⾼高める – オーバーヘッドを限りなくゼロに (HW 仮想化⽀支援機能を活⽤用) – Solaris Zones の操作性および管理理性をそのままに、カーネル依存のサービスを提供可能
  38. 38. ゼロ・オーバーヘッド仮想化機能の更更なる強化 の Solaris Zones • が可能 – ゾーンにカーネルを持たせることでバージョンの固定が可能 • カーネル・クラッシュは – アプリケーション・バグによる影響も当該ゾーンにのみ影響 • を提供可能 – 全てのサービスがゾーン内で提供可能 • システム・メンテナンス時も – Suspend Resume による最⼩小限のダウンタイム – Live Migration は今後実装予定 38 Oracle Solaris 11.2
  39. 39. Solaris Kerenl Zones Oracle Solaris 11.2 以降降でサポート • 物理理ホストの要件 – For SPARC • SPARC T4: System Firmware 8.5.0 以降降 • SPARC T5, M5, M6: System Firmware 9.2.0 以降降 – For x86 • ホスト BIOS/EFI での CPU 仮想化⽀支援機能の 有効化 – 最⼩小 8GB の物理理メモリ – ZFS ARC(Adaptive Replaecement Cache) の上限値チューニング • 搭載物理理メモリの半分程度度に抑える • その他 – brand/brand-solaris-kz パッケージ – サポートは virtinfo コマンドで確認 # virtinfo (SPARC T5-8 の例例) NAME CLASS logical-domain current non-global-zone supported kernel-zone supported ※デフォルトの Kernel Zones リソース リソースデフォルト値 CPU1 (virtual-cpu) Memory2GB (メモリがロックされるため⼤大域ゾーンの スワップへページングはされない) Storage16GB Networkexclusive のみ, Single NIC, Random MAC
  40. 40. ゼロ・オーバーヘッド仮想化機能の更更なる強化 より独⽴立立性の⾼高い仮想環境を提供 • をサポート • ゾーンで • まで構築可能 40
  41. 41. ゼロ・オーバーヘッド仮想化機能の更更なる強化 独⽴立立したカーネルをゾーンで利利⽤用可能に ー Solaris Kernel Zones Best-­‐of-­‐Breed Migra$on • ゾーンのサスペンド/レジューム(保存 停⽌止/再開)をサポート • ライブマイグレーション(※予定) • 制限の緩和 (CIFS サーバーなど) • Solaris N on Solaris N+ – Solaris 11.2 上で Solaris 11.3 や Solaris 12 などが動作 8 Oracle Confidential: Need to know Zone Zone u1 Zone u2 • New generation of Zones • Own version of kernel • Allows patching/upgrading of zones to different OS releases individually • Antfarm zones can be suspended/ resumed • Live Migration possible! • Admin/Config/Resource Management interfaces exactly similar to zones • One set of resource controls and policies for all Different update levels Zone Zone A System A System B Live Migration
  42. 42. ゼロ・オーバーヘッド仮想化機能の更更なる強化 独⽴立立したカーネルをゾーンで利利⽤用可能に ー Solaris Kernel Zones • zoneadm suspend – kernel zones のみ – suspend resource property が設定されている必要あり • zonecfg –z KZ-Zones info suspend – supend されたメモリイメージは、圧縮され AES-128-CCM で暗号化。暗号化 キーは /dev/random から動的に⽣生成される – 圧縮された suspend イメージは割り当てられるメモリよりは少なくなるが、 メモリの使状況により変化 – suspend からの復復帰は、zoneadm boot コマンドで – suspend 状態の Zone を異異なるホストにマイグレーション可能 42
  43. 43. ゼロ・オーバーヘッド仮想化機能の更更なる強化 kzhost プロセスと zvmm カーネル・モジュール • kzhost プロセス – kernel zone 毎に⽣生成されゲストに仮想 CPU を利利⽤用させるプロセス – I/O スレッドや各種管理理など – ゾーンに割り当てられるメモリ管理理 – Type 2 ハイパーバイザの役割 • zvmm (zone virtual machine monitor) 疑似ドライバ – ゲストの実⾏行行に切切り替える仮想 CPUスレッド の ioctl 管理理 – 仮想デバイスの拡張制御など • ゲストからのハイパーコールをホストへ • ホストからゲストへの割り込み – 仮想ハードウェアを再現する役割
  44. 44. カーネルゾーン 仮想デバイスによる機能の実装 • zvblk – 全ての disk I/O • zvnet – ネットワーク • zvterm – コンソール, zlogins • zvsdir – 共有ファイルシステム (⾮非公開インターフェース) • zvcntrl – apic, bus, timers, management, etc… • これらが実装される OSでなければ kernel zones で動作しない (例例:Solaris 10 は動作しない) root@solaris-s12:~# prtconf -D System Configuration: Oracle Corporation i86pc Memory size: 2048 Megabytes System Peripherals (Software Nodes): i86pc (driver name: rootnex) scsi_vhci, instance #0 (driver name: scsi_vhci) zvnex, instance #0 (driver name: zvnex) zvcntrl, instance #0 (driver name: zvcntrl) zvterm, instance #0 (driver name: zvterm) zvblk, instance #0 (driver name: zvblk) zvnet, instance #0 (driver name: zvnet) zvsdir, instance #0 (driver name: zvsdir) fcoe, instance #0 (driver name: fcoe) iscsi, instance #0 (driver name: iscsi) options, instance #0 (driver name: options) pseudo, instance #0 (driver name: pseudo) vga_arbiter, instance #0 (driver name: vga_arbiter) xsvc, instance #0 (driver name: xsvc) cpus, instance #0 (driver name: cpunex) cpu (driver name: cpudrv)
  45. 45. 仮想化によるパフォーマンスの影響なし SAS 社が評価 • 40 のテストが含まれる CPU/メモリおよび I/ O 集中型の標準 SAS テストを実施 • IO 構成は同⼀一 • 影響は最⼩小限かつ識識別可能であった 45 03:00 02:30 02:00 01:30 01:00 00:30 00:00 Time (hh:mm) Bare Metal Kernel Zone 䈜 SAS 9.4 hNp://www.oracle.com/technetwork/database/bi-­‐datawarehousing/sas/sas-­‐on-­‐sol11-­‐2-­‐kernelzones-­‐2195675.pdf
  46. 46. ゼロ・オーバーヘッド仮想化機能の更更なる強化 Solaris Kernel Zones – まとめ • Native Zones で実現できないサービスを提供可能に – Solaris Zones の操作性および管理理性をそのままに、カーネル依存のサービス を提供可能 • ⼀一部、HW 機能および資源への依存が発⽣生するが、より⾼高い隔離離性 を実現 – CPU に実装される HWによる仮想化⽀支援機能 • 仮想化によるパフォーマンス低下を回避 – 2GB 以上の専⽤用物理理メモリ,ファイルシステムではなくボリューム(zvol, LUN) • suspend/resume や Live Migration (※予定) を実現可能に 46
  47. 47. 47 Solaris 11.2 のアーカイブ/テンプレート機能 導⼊入の柔軟性を最⼤大化 – 䛹䛣䜈䛷䜒䚸䛹䛣䛛䜙䛷䜒
  48. 48. アーカイブの種類 ⽤用途により 2 つのタイプを⽤用意 クローン・アーカイブ リカバリ・アーカイブ 独⽴立立したシステムのアーカイブ 対象は⼀一つのゾーンのみ(⼤大域ゾーンまたは⾮非⼤大域ゾーン) • ⼤大域ゾーンのアーカイブには、⾮非⼤大域ゾーンが必ず含まれる アクティブな BE のみが含まれる 全ての BE が含まれる ZFS データセットのクローンはプロモートされる ZFS データセットのクローンは関係を維持したまま 保存される システム構成は初期化される • ノード固有やインスタンス固有なデータは削除されるシステム構成は保存される 完全なクローンイメージを作成 • システムとデバイスの構成はソースに依存しない • システムログやイベントも初期化される デバイスの構成情報のみ初期化 48 • OVF (Open Virtualization Format) 準拠 • OVF に沿った仕様を採⽤用 • OVA (Open Virtualization Format Archive) ファイル形式での配布
  49. 49. Native or Kernel Zones? 49
  50. 50. NaUve or Kernel Zones? • アプリケーションの要件により選択 – 全てのアプリケーションは、ゾーンで 動作するようにするべき – Kernel Zones は、ゾーンであり、異異なる タイプのゾーン – 今後は、Native と Kernel Zone が組み合わ されたものが横並びで増えてゆく 50 NaUve Kernel Mobility Fixed Memory Independent Versions More IsolaUon Resource Sharing Zero Overhead IO Lightweight High ConsolidaUon
  51. 51. Oracle Solaris Zones or OVM Server for SPARC? アプリケーション Oracle Solaris Zones OVM for SPARC § パーティションにより NUMA の影響を低減 § HA 構成 § Solaris Cluster による 制御ドメイン障害時の 回復復⼒力力 § Split PCI bus 構成 § ⾼高密度度の統合 § リソースの共有と粒粒度度 § ベアメタルと同等の I/O パフォーマンス § シンプルな管理理 § ⾼高い機動性 (detach/ attach) § レガシー OS のサポート § システムではなくアプリ ケーションの観点で仮想 化環境を選択 § ビルトインされたソ リューションを持つアプ リケーションもある (DB 12c PDB など) 51
  52. 52. OVM for SPARC と Solaris Zones を組み合わせる • OVM for SPARC と Solaris Zone 機能のいいとこ取りを狙う • 例例えば、ゾーンをグループ化することで、 – リリースサイクルを管理理したり – メンテナンスウィンドウを制御 できたり – 部⾨門毎にワークロードを分けたり – 顧客毎に分けたり – 冗⻑⾧長化リージョンを構成したり – other … 52 Solaris 11 Zone Solaris 11 Zone Solaris 11 Zone Solaris 11 Zone Solaris 11 Zone Solaris 11 Zone Solaris 11 Zone Solaris 11 Zone Solaris 10 Zone Solaris 11 Zone Solaris 11 Zone Solaris 11 Zone Solaris 11 Zone Solaris 11 Zone Solaris 11 Zone Solaris 11 Zone HR LDom Finance LDom Sales LDom ⾼高い統合効果に加え、機動性も確保した 環境を得る事が可能に
  53. 53. OpenStack と Oracle Solaris Zones Solaris Zones をハイパーバイザーとしてサポート OpenStack Component Solaris Foundation Technology コンピュート仮想化 (Nova) 最初のコンピュートモデルとして Solaris Zones と Solaris Kernel Zones をサポート このサポートは、Nova のプラグインとして提供 ネットワーク仮想化 (Neutron) 仮想 NIC/VLAN は Crossbow ネットワーク仮想化機能、SDN は Elastic Virtual Switch にて構築 ストレージ仮想化 (Cinder) ZFS と COMSTAR の iSCSI サポートを Cinder プラグインとして提供 イメージをベースとしたデプロイ(Glance) Solaris 統合アーカイブ (Unified Archive) を利利⽤用し⾃自動インストーラ機能にて Zone の デプロイ 構成管理理 RAD (Remote Administrator Daemon) による OpenStack のためのプログラム・イン ターフェースを提供 OpenStack インフラストラクチャのライフサイ クル管理理とサービス OpenStack 各種サービスは Solaris SMF で管理理 OpenStack パッケージは Solaris 11 のパッケージシステムで提供 OpenStack パッケージを含んだ統合アーカイブも提供
  54. 54. OpenStack の全機能を Solaris 11.2 でサポート Horizon Cloud Management Cloud APIs Nova Neutron Cinder Swift Glance サーバー仮想化 クラウドネットワーク クラウドストレージ イメージの展開 Oracle Solaris Zones Elastic Virtual Switch ZFS File System Unified Archives
  55. 55. OpenStack mulU-­‐node on SPARC T5-­‐8 (with OVM for SPARC) Oracle ConfidenUal – 55
  56. 56. OpenStack mulU-­‐node on SPARC T5-­‐8 (with OVM for SPARC) ᵓᡂ౛: 56 T5-­‐8 Control Domain Control-­‐node(Ldom) net0 net1 Compute-­‐node01(Ldom) net0 net1 Compute-­‐node02(Ldom) net0 net1 evs Ext_net 10.134.67.240/29 (VLAN200) Int_net 192.168.10.0/24(VLAN201) VP VP VP VP VP VP Zone 01 vnic Zone 03 vnic Zone 04 vnic Zone 02 vnic Zone 05 vnic Zone 06 vnic uplink port uplink port uplink port cinder Neutron horizon ZFS rpool ZFS rpool ZFS rpool nova nova nova Zone root Zone root Management Catalyst 4948 trunk trunk trunk Evs controller Evs node Evs node
  57. 57. 57 create -b set brand=solaris-kz set autoboot=false set autoshutdown=shutdown set hostid=0x4ebe2024 add anet ← 䝛䝑䝖䝽䞊䜽ᵓᡂ set lower-link=auto set configure-allowed-address=true set link-protection=mac-nospoof set mac-address=auto set evs=switch01 ← ฼⏝䛩䜛௬᝿䝇䜲䝑䝏 set id=0 end add device ← ㉳ື䝕䜱䝇䜽ᵓᡂ set storage=dev:/dev/zvol/dsk/%{global-rootzpool}/VARSHARE/zones/%{zonename}/disk%{id} set bootpri=0 set id=0 end add capped-memory ← 䝯䝰䝸ᵓᡂ set physical=2G end add virtual-cpu ← CPU ᵓᡂ set ncpus=8 end add suspend ← suspend ᵓᡂ(䝯䝰䝸䜲䝯䞊䝆䛾㓄⨨ᵓᡂ) set path=/system/zones/%{zonename}/suspend end add keysource ← ᬯྕ໬㘽䛾ᵓᡂ (susend 䜲䝯䞊䝆⏝) set raw={base64}yRC4nwxXki2cw8YvesvYkw== end Kernel Zones の構成ファイル例例 䈜 iSCSI LUN 䜢฼⏝䛧䛯ሙྜ䛾౛ set storage=iscsi://192.168.100.201:3260/target.iqn.1986-­‐03.com.sun:02:413a759d-­‐6d29-­‐6147-­‐eddc-­‐c986e374e20b,lun.4
  58. 58. 参考情報: 仮想化ソリューションの選択 Physical Domains + Oracle VM for SPARC or/and Solaris Kernel Zones or/and Solaris Zones OVM for SPARC + or/and Solaris Kernel Zones or/and Solaris Zones 最⾼高の可⽤用性が必要 できるだけ プラットフォームの デバイスアーキテクチャに 沿ってリソースを分けたい また、OS、バージョン、 パッチレベルを管理理したい Physical Domains (M6-‐‑‒32/M5-‐‑‒32) (CPU/メモリボード数依存) さらに環境を分けたい Oracle VM for SPARC (SPARC T4/T5/M5/M6) (H/Wスレッド数に依存) さらに環境を分けたい (H/Wスレッド数に⾮非依存) Solaris Zones Solaris Kernel さらに環境を分けたい とにかく環境を分けてリソースを管理理したい ( CPU/メモリボード数, H/Wスレッド数に⾮非依存) Solaris Zones (H/Wスレッド数に⾮非依存) Zones (SPARC T4/T5/M5/M6) (H/Wスレッド数/メモリ容量量に依存) とにかく OS、バージョン、パッチ レベルを管理理したい
  59. 59. M6-‐‑‒32 ビッグメモリマシン 32ソケット384CPU コア3,072 スレッド テラバイトスケールのコンピューティング 59 32 テラバイトメモリ
  60. 60. 参考情報 • Solaris Zones: Operating System Support for Consolidating Commercial Workloads – Daniel Price and Andrew Tucker – Sun Microsystems, Inc. – https://www.usenix.org/legacy/event/lisa04/tech/full_papers/price/price.pdf • Oracle Solaris 11.2 Information Library (英語) – http://docs.oracle.com/cd/E36784_01/index.html • Introduction to Oracle Solaris Zones (⽇日本語版はもう少しで公開) – http://docs.oracle.com/cd/E36784_01/html/E36848/index.html Oracle Confidential – 60
  61. 61. 参考情報 Oracle Solaris 11.2 をすぐに試せる VM テンプレート • Oracle Solaris 11.2 VM Downloads http://www.oracle.com/technetwork/server-storage/solaris11/downloads/vm-templates-2245495.html – Oracle Solaris 11.1 VM for Oracle VM VirtualBox • VirtualBox にインポートするだけで Oracle Solaris 11.2 を試⽤用可能 • Oracle Solaris 10 VM Downloads http://www.oracle.com/technetwork/server-storage/solaris11/downloads/virtual-machines-1355605.html – Oracle Solaris 10 VM Template for Oracle VM VirtualBox • VirtualBox にインポートするだけで Oracle Solaris 10 1/13 を試⽤用可能 – Oracle VM Template for Oracle Solaris 10 Zones for SPARC/x86 • Oracle Solaris 10 Zones の構成情報テンプレート • Oracle Solaris 11.1 VM for Oracle VM VirtualBox と組み合わせることで、VirtulBox 上で Solaris 11.1 と Solaris 10 Zones の試⽤用環境を構築可能 • Solaris 11.2が動作する環境でも利利⽤用可能

×