一つOpenStackの研究ノート:基礎知識

OpenStackのは何です1.
OpenStackのは、IaaSの解の集合である
OpenStackのとRackSpaceのは、信頼性の高いクラウド展開シナリオを提供することを目的とパブリッククラウドとプライベートクラウドのオープンソースプロジェクトのためのソフトウェア開発を提供するように設計NASA(NASA)とのコラボレーションです良いスケーラビリティ。簡単に言えば、OpenStackのクラウドオペレーティングシステム、またはクラウド管理プラットフォームレベルで、独自のクラウドサービスを提供しますが、展開と管理レベルのプラットフォームを提供していません。
2は、クラウドコンピューティング何で
利用して配信モードに関連するインターネットベースのサービスの増加は
-利用できるこのモードの提供は、編集、コンピューティングリソースの共有プールへのオンデマンドのネットワークアクセスを設定することができます
-これらのリソースを迅速に提供することができますただ、最小限の管理労力を入れて、またはサービスプロバイダとはほとんど相互作用
-通常、動的拡張の服を提供するために、インターネットを含む、多くの場合、仮想化リソース
3、3つのネットワーク
一つOpenStackの研究ノート:基礎知識
サーバとして(1)インフラストラクチャ(IaaSの ): 仮想マシンのためのサービス、物理マシンの管理、管理、ストレージリソース管理などのインフラ。
---サービスが処理するCPUを含むすべてのコンピュータインフラストラクチャの使用のための消費者に利用可能であり、ユーザーはオペレーティングシステムとアプリケーションを含む、任意のソフトウェアを展開して実行することができます。
---のIaaSは、通常3つの用途に分かれています。パブリッククラウド、プライベートクラウド、ハイブリッドクラウド、
サービスとして(2)プラットフォーム(PaaSの):プラットフォームや、設定されたApache、MySQLやPHP環境としての仮想マシンを、構築するためのサービスの開発プラットフォーム、
---サーバプラットフォームまたはなどの開発環境繧なるために提供されたサービス
プラットフォームへのサービス---提供する事業者のニーズではなく、単に基本的なプラットフォームでなく、技術サポートサービスのため、およびプラットフォームが実行するためにも、アプリケーション開発、および最適化サービス
---簡単に言えば、PaaSのプラットフォームクラウドアプリケーションインフラストラクチャサービスが環境で指定されている、それはそのミドルウェアサービスとして言うことができる
(3)としてのソフトウェアサービス (SaaS型): などのショッピングサイト、ブログサイトとしてサービスとしてのソフトウェア、 、マイクロブログサイト。
---独自のサーバーを展開するインターネットモデルが提供するソフトウェア、統一されたアプリケーション・ソフトウェア・ベンダである
インターネットアプリケーションサービスを経由して、ベンダーへの実際のニーズに応じ---顧客、オーダー。
---ユーザーがソフトウェアを購入しますが、プロバイダにリースしていない。ウェブベースのソフトウェアの事業活動を管理するために、ないソフトウェア保守プロバイダは、完全に管理し、維持するソフトウェアを、だけでなく、オフラインでのソフトウェアおよびローカル・データ・ストレージを提供します。
4 KVMは何である
1)KVM源
KVM-カーネルベースの仮想マシン(カーネルベースの仮想マシン)、ハイパーバイザの仮想化技術へのLinuxカーネル、完全な仮想化ソリューションは、ハードウェア・レベルの仮想化タイプであります。Linuxはカーネルの機能で、KVMは、二つの条件が必要です:仮想化のための完全なハードウェアサポートを、オペレーティングシステムがLinuxです。
図2-1に示す2)KVMアーキテクチャ。
一つOpenStackの研究ノート:基礎知識
ハイパーバイザーホスト上で実行されているカーネルとKVM(ホストOSカーネル)、アナログCPUのサポート、メモリ、I / O、仮想マシンのモニタリング、およびQEMUのための物理的支持を提供します。
QEMUはプロセスとしてホスト・ユーザ・モードで実行している、そしてそれは特性のKVMカーネルに基づいており、ゲストOSのプロセスで実行するためのCPU、メモリ、I / Oハードウェア、ゲストOSのサポートをシミュレートしています。
多くの仮想化管理サービスは、libvirtのライブラリーは、ハイパーバイザーの様々なサポート、LinuxのAPIのLinuxの仮想化機能の実装である、それらのほとんどが達成libvirtのに基づいてあります。
、KVM、QEMU、KVM、関係3のlibvirt)QEMU
(1)QEMU
QEMU仮想化は、Intel VTまたはAMD SVMにより完全仮想化を実現するために別々の溶液である、QEMUは、システムが直接シミュレートすることができるインストール別の全く異なるシステム環境、QEMU画像システムによって仮想マシンを作成し実施することができます。QEMU自体は、KVMに頼ることはできないが、そのようなインテルVTとしてKVMとハードウェア(プロセッサ)のサポート機能の存在がある場合、この部分でQEMUプロセッサの仮想化は、パフォーマンスを向上させるために、KVMが提供する機能を利用することができます。
(2)のKVM
KVMはLinuxカーネルのハイパーバイザに統合されたX86アーキテクチャであり、仮想化技術(IntelVTまたはAMD-V)のハードウェアサポートは、完全なLinuxの仮想化ソリューションです。これは、Linux用の小型モジュールであり、機器との対話には、そのようなタスクスケジューリングなど、たくさんのことを行うために、メモリ管理ハードウェアをLinuxで使用しています。正確には、KVMはLinuxカーネルモジュールです。あなたは、KVMモジュールをロードするためのコマンドのmodprobeを使用することができます。さらに他のツールで仮想マシンを作成するために、モジュールをロードした後。しかし、唯一のKVMモジュールは、ユーザが直接何かをするカーネルモジュールを制御することはできませんので、あなたはまた、ユーザ空間ツールで実行するジョブを持っている必要があり、十分ではありません。ユーザ空間のツールは、KVMの開発者は、既に形成されているオープンソースQEMUの仮想化ソフトウェアを選択しました。スピーキングは、QEMUの仮想化ソフトウェアです。これは、異なる利用可能な仮想CPUによって特徴付けられます。例えば、x86 CPUに仮想CPUの消費電力とすることができ、電源上で実行することができ、プログラムをコンパイルするためにそれを使用することができます。KVM QEMUは、の一部を使用し、わずかに変更、それは制御可能なKVMユーザ空間ツールとなります。あなたが表示されますので、KVMのダウンロード公式オファーは2つの主要コンポーネント(QEMUとKVM)3つのファイル(KVMモジュール、QEMUツールと2コレクション)があります。言い換えれば、あなたが唯一のKVMモジュールをアップグレードすることができ、あなただけのQEMUのツールをアップグレードすることができます。これは、KVMとQEMUとの関係です。
KVMは、次のqemu-KVMを言うことです完全なQEMUの仮想化技術を、形成するために結合されなければならないので、それ自体が唯一、CPUとメモリの仮想化を提供することができますモジュールのカーネル。
(3)KVM-QEMU
でQEMU KVM統合、IOCTLの/ dev / KVMインタフェースCPUの命令に関連する呼び出して、カーネルモジュールが行う呼びます。+ CPUの仮想化KVM CPUとメモリの仮想化を達成するために、メモリの仮想化を担当するが、KVMは、他のデバイスをシミュレートすることはできません。QEMUアナログIOデバイス(ネットワークカード、ディスクなど)は、サーバ仮想化のプラスKVM、QEMU後の真の意味を実現することができるようになります。そうQEMU-KVMと呼ばれる2つの事柄、上記の使用しているため。
QEMUは、彼が準仮想化デバイスvirtio_blkパススルーを持っていたので、これらのデバイスの性能に影響を与えるであろう、そのようなネットワーク、ディスクなど、他のハードウェアをシミュレートする、virtio_net、機器の性能を向上させます。
一つOpenStackの研究ノート:基礎知識
(4)のlibvirt
A)の概念
指輪を達成するために、仮想、クラウド:仮想化技術- > [仮想マシンの管理] - > [クラスタリソース管理(クラウド管理)。さまざまな仮想化技術が不可欠な管理ツールを提供します。例えば、アクティブ化、非アクティブ化、設定、接続されているコンソール。したがって、2つの問題があるクラウド管理構築するとき:
((1))を混合仮想化技術ならば、経営トップは、異なる仮想化技術のためのさまざまなツールを呼び出す必要がある、それは面倒です。
((2))の仮想化技術の開発は、システムの仮想化と仮想コンテナは、開発と進化している、非常に急速です。新しい仮想化技術は、より移行過去に現在のシナリオ、必要性に沿ったものであるがあるかもしれません。このような管理プラットフォームは、大幅な変更が必要になります。
仮想マシンとクラウド管理における管理の抽象セット、お互いにそれを透明にすること、いつもの階層での変更、手段に適応するために。libvirtのは、この役割を果たしています。libvirtのの申し出異なる仮想マシンを管理するために、上のためのAPIの様々な。
libvirtのは、このようなストレージ管理、ネットワーク管理ソフトウェアのコレクションとして仮想マシンおよび他の仮想化機能を、管理することです。これは、APIライブラリ、デーモン(にlibvirtd)とコマンドラインツール(virshを使用)を含み、libvirtの自体は概念的抽象的に構築されています。これは、サポートされているハイパーバイザーの一般的な機能は、共通のAPIを提供して実装しています。
主な目的libvirtの仮想化の管理は、単一の方法で、様々な異なる方法を提供し、仮想化ツールの様々な便利な、信頼性の高いプログラミング・インターフェースを提供することです。
B)機能
など、さまざまな操作のライフサイクルを含む:VMの管理開始、停止、一時停止、保存、復元、および移行。ディスク、ネットワークカード、メモリ、およびCPU:を含む、ホットプラグ操作の複数のデバイスタイプのサポート。
リモートマシンをサポートしています:ちょうどマシン上のリモートマシンを含め、libvirtのデーモンを実行して、libvirtの缶へのアクセスと使用上のすべての機能。複数のネットワークのリモート伝送、SSHを使用するのが最も簡単、追加の構成をサポートしています。
ストレージ管理:libvirtのデーモンを実行している任意のホストは、異なるタイプのストレージを管理するために使用することができます。異なるフォーマット(QCOW2、VMDK、生など)でミラー化されたファイルを作成し、NFS共有をマウント、リストの既存のLVMボリュームグループは、新しいを作成しますLVMボリュームグループと未処理のディスク装置のパーティションの論理ボリュームは、iSCSIは共有マウント、等等。libvirtのは、リモートで作業ができるので、これらの全ては、リモート・ホストが使用することができます。
ネットワーク管理インターフェース:任意のホストを実行しているデーモンのlibvirtは、物理的および論理的なネットワークインタフェースを管理するために使用することができます。
NATベースのルーティングと仮想ネットワーク:libvirtのデーモンを実行している任意のホストは、仮想ネットワークを作成および管理するために使用することができます。
C)アーキテクチャは
、図に示した仮想マシンマネージャlibvirtの実施形態を使用していません。
一つOpenStackの研究ノート:基礎知識
さまざまなハイパーバイザーのスケーラビリティをサポートするために、アーキテクチャ・ドライバを実装するlibvirtの、アーキテクチャは、一般的な方法でサービスを提供する可能性の共通APIハイパーバイザーの多数が可能になります。次の図に示すのlibvirt APIおよび関連するドライバを持つ階層。注意を払うする必要もあり、リモートアプリケーションからローカルへのアクセスを提供するにlibvirtd。
一つOpenStackの研究ノート:基礎知識
:2つの方法で制御IRT
((1))と同じノード上でドメイン管理アプリケーション。この領域を制御するための作業によって、libvirtの管理アプリケーション。
一つOpenStackの研究ノート:基礎知識
(このモードは、リモート・ノード上で実行を使用して(異なるノード上に配置(2))管理アプリケーションとドメイン。libvirtの新しいノードにインストールされている場合、プログラムにlibvirtdと呼ばれる特別なデーモンが自動的に開始され、そして自動的に決定し、ローカルハイパーバイザ。共通のプロトコルを介して遠隔のlibvirtのにlibvirtdにローカルからの接続管理アプリケーションは、ドライバをインストールする。
一つOpenStackの研究ノート:基礎知識
5)OpenStackの、KVM、qemu-関係のKVM のlibvirtと
KVMが最もあります我々はそれを直接使用することはできませんので、CPUの動作をシミュレートするために使用される基本的なハイパーバイザは、それは、ネットワークや周辺I / Oのサポートを欠いています。QEMU-KVMは、KVMの上に構築され、完全なシミュレータは、それは完全なネットワークおよびI / Oのサポートを提供しています。OpenStackの直接QEMU-KVMを制御しません、それは間接的な制御のqemu-KVMに呼ばれるのlibvirtライブラリを使用します。libvirtのクロスプラットフォームVMの機能を提供し、それはそうでVMware、VirtualBoxは、Xenの、とを含む、QEMUに加えて、シミュレータを制御することができます。だから、クロスVMのOpenStackのために、それが唯一のlibvirtのqemu-kvmをせずに直接使用されるOpenStackの。libvirtのはまた、プール/ VOL管理などのいくつかの高度な機能を提供します。
6)OpenStackのアーキテクチャ
一つOpenStackの研究ノート:基礎知識
ダッシュボード
ホライゾン
---様々なサービス、ウェブベースの管理インターフェースを管理するためのOpenStackの
開始のインスタンスによって---グラフィカル・ユーザ・インタフェースの実装が作成し、ネットワーク管理、および他の操作を
ネットワーク
中性子
。1)、ソフトウェア所与のネットワークサービス、インターネットアクセスこのようOpenStackのコンピュートなどのサービス、。数多くのネットワークプロバイダと技術をサポートし、ネットワークおよび使用、プラグインベースのアーキテクチャを提供するユーザー定義のAPI。
---ネットワーク、サブネット、ルーター、管理変動IPアドレスを作成するために使用される
仮想ルータ、仮想スイッチを達成することができます---
すべての仮想ネットワーク・インフラストラクチャ(VNI)のためのOpenStackの環境を管理---、物理的なネットワークインフラストラクチャ(PNI)アクセス層。
中性子アーキテクチャ:
一つOpenStackの研究ノート:基礎知識
(1)中性子サーバーの上部には、ノヴァAPIなどの外部APIの宗派(プロジェクト)からの要求を受信するための責任が「頭」役割(RESTfulなサーバー)での武道、ネットワークを作成するための要求として機能します。
(2)中性子プラグインの中間層は、以下の人々に最高レベルの命令を伝達するための責任を負う「メッセンジャー」役で武道、として機能します。
(3)下の中性子エージェントにあるが、特定のタスクと操作の実装を担当する「仕事」役割の武道として機能します。
2)、中性子それぞれ設けられた層(L2)のvSwitchスイッチングおよびレイヤ(L3)ルータ抽象ルーティング機能、物理的なネットワーク環境に実装スイッチおよびルータに対応します。以下の機能の具体的な実現:
(1)ルータ:ルーティング、NATや他のサービスを提供するために、テナントのため。
(2)ネットワーク:実際の物理的なネットワークのレイヤ2 LAN(VLAN)に対応し、テナントの観点から、テナントはプライベートです。
(3)サブネット:三層ネットワークの概念、または関連する構成情報に記述IPv4およびIPv6アドレスの指定された期間。これを使用することができる仮想ネットワークマシンの指定したIPアドレスの範囲に属し、レイヤネットワークに接続されています。
ストレージ
オブジェクトスウィフトストレージ---
--- RESTfulな、HTTPベースのアプリケーション・プログラミング・インターフェースおよび記憶を介して任意の非構造化データを取得したオブジェクト。
---これは、データ・レプリケーションおよびスケーラブルなアーキテクチャに基づいて、高い耐障害性を持っています。
---スウィフトの目的は、冗長でスケーラブルな分散オブジェクトストレージクラスタ、PBのレベルまでのストレージ容量を構築するためにコモディティハードウェアを使用することです。
---スウィフトが静的データの永久的な種類の長期保存のためのオブジェクト・ストレージのファイルシステムまたはリアルタイムデータ・ストレージ・システムは、ないが、これらのデータは、必要に応じて更新され、調整、取得することができます。データストレージの種類の例としては、仮想マシンのイメージ、フォトストレージ、電子メールストレージとアーカイブ、バックアップのために最も適しています。
--- RAID(ディスクの冗長アレイ)を使用せずにスウィフト、いかなる中央マスタユニットまたはノードが存在しません。一貫したハッシング技術とデータの冗長性を導入することにより、ソフトウェアレベルでの迅速、読み書きするマルチテナントモデル、コンテナとオブジェクトをサポートするために、高可用性(ハイアベイラビリティ、HAと称する)とスケーラビリティを達成するために、データの整合性の度合いを犠牲操作、非構造化データの保存問題解決のインターネットアプリケーションシナリオのため。

ブロック・ストレージ---燃えがらの
インスタンスを実行するために提供永続ストレージブロック。このプラグ対応ドライブアーキテクチャは、ブロックストレージデバイスを作成および管理するのに役立ちます。
1)ブロックストレージを理解し、システム取得収納スペースを操作する、二つの一般的な方法がある:
(1)プロトコル(SAS、SCSI、SAN、iSCSIの、等)を介して取り付けられた裸のハードドライブは、次にパーティション、フォーマットは、ファイルシステムを作成します;直接ハードディスク(データベース)に格納された生データを使用して
のリモートファイルシステムのマウントなどNFS、CIFSプロトコルを介して、(2)
また、一般的に裸ハードボリュームのそれぞれと呼ばれる、裸のブロックストレージ(メモリブロック)と呼ばれるハードディスクの第一の実施形態を(体積)。
二つ目は、ファイル・システム・ストレージと呼ばれています。NASおよびNFSサーバー、および分散ファイル・ストレージ・システムの様々なこのすべてを提供します。
2)、ブロック・ストレージServicetは、ライフサイクル全体を削除するには、作成からボリュームの管理を提供します。ビュー・インスタンスの観点から、各ボリュームは、ハードドライブでマウントします。OpenStackのブロック・ストレージ・サービスは、燃えがらを提供され、特定の機能は次のとおりです:
(1)は、REST APIは、クエリすることができます提供し、ボリューム、ボリュームスナップショット、およびボリュームの種類を管理します。
(2)ボリューム、ストレージ・リソースの最適化の割り当てを作成するためにスケジューラのスケジューリング要求を提供します。
(3)は、EMC、IBMおよび他の商業ストレージ製品とソリューションとしてLVM、NFS、セファロなどを含むドライバアーキテクチャによって、バックエンド(バックエンド)ストレージ、様々なサポート。
共有サービス
IDサービス-キーストーン
---認証と許可を提供するために、コンポーネント間の統一された認証用のID管理サービスを一元
集中化されたディレクトリ・サービスを提供しています---
---にあるパスワード認証など複数の認証方式、認証トークンを、サポートしていますAWS(Amazon Webサービス)ログイン
---のためのSSOユーザー認証サービスおよびその他のサービスを提供する
画像サービス-概要
際に、インスタンスの展開---保存と検索仮想マシンのディスクイメージ、OpenStackの計算は、このサービスを利用します。
直接実行するには、ユーザーがストレージ・サーバ・イメージをコピー---
---これらの画像は、新しい仮想マシンのテンプレートを作成するために使用することができ
テレメトリ-雲高計を
監視し、OpenStackのクラウド会計目的で、ベンチマーク、スケーラビリティと統計のための計量提供。
ハイレベルなサービス
オーケストレーション-熱
オーケストレーションサービスは、OpenStackのネイティブREST APIとCloudFormation互換クエリAPI、サポート呼び出すことにより、統合されたクラウドアプリケーションのさまざまなサポートしています。用語:HOT <Heat Orchestration Template (HOT)>書式テンプレートやAWS CloudFormationの書式テンプレート
を計算
ノヴァ
--- OpenStackの中を環境ライフサイクル管理の計算例。
---要求、スケジューリング、および他の操作に応じて生成するステップを含む仮想マシンを回復しました。
---ノード上のサービス仮想マシンの
---ノヴァが分散サービスである
---ノバは、標準的なハードウェア上で水平方向に拡張するように設計されています
中心に新星Openstakアーキテクチャは、他のコンポーネントのためのサポートを提供するためにノヴァ:
--- VMイメージを一目提供するために
、それぞれ---燃えがらスウィフトとVMを、ブロックストレージオブジェクトストアを提供する
ネットワーク接続を提供する--- VM中性子
によってノヴァ計算をlibvirtの管理、KVM、計算ノードは、仮想マシンを実行するための本当の場所です

一つOpenStackの研究ノート:基礎知識

おすすめ

転載: blog.51cto.com/8355320/2480556