OpenStack の学習は難しいと多くの人が報告しています。この記事の著者も、OpenStack の導入から運用、保守に至るまでの苦労を経験しました。そこで著者は、OpenStack を学ぶ上での困難や不安を読者と共有し、OpenStack で重点的に学ぶべき重要な分野や知識を紹介することで、皆様のお役に立てればと考えています。 序文 クラウド コンピューティング テクノロジーの発展と成熟に伴い、社内にプライベート クラウド コンピューティング プラットフォームを導入する企業がますます増えています。コストを考慮し、オープンソースのクラウド コンピューティング管理プラットフォームである OpenStack も、より多くの技術者によって学習され、導入されています。クラウド コンピューティングには柔軟性、スケーラビリティ、オンデマンド割り当てなど多くの利点がありますが、その導入と管理にはオープン ソースを深く研究したチームが必要です。 OpenStack には多くのコンポーネントがあるため、展開が難しく、トラブルシューティングも困難になります。バージョンは6ヶ月ごとに更新されるため、比較的頻繁に更新されます。企業がクラウド プラットフォームのバージョンを 6 か月ごとに更新することは考えにくいため、大きなバージョン ギャップが生じます。
画像はBaotu.comより 開発の勢いは強いものの、避けられない問題は、OpenStack を導入するには比較的上級のオープンソース技術能力とチームが必要になることです。 OpenStack を学習し、OpenStack の難しさを克服することは、IT 技術者にとっての関心事となっています。 コンセプトレビュー 読者が OpenStack をよりよく理解できるように、その基本概念を簡単に確認します。 OpenStack は、高い可用性とスケーラビリティを備えたオープンソースのクラウド コンピューティング プラットフォームです。 KVM、Xen Server、VMware、Oracle VM、Xen など、ほとんどの主流ハイパーバイザーの管理をサポートします。同時に、OpenStack はオープンソースのクラウド コンピューティング ソリューションです。高度にスケーラブルなパブリック クラウドとプライベート クラウド (IaaS) の導入、管理、構成を高速化できます。 OpenStack を基盤として使用することで、データセンター運営者は既存のインフラストラクチャを使用してクラウド サービスを迅速かつ簡単に作成できます。これにより、IT 管理者は、電気や水道を使用するのと同じように、コンピューティング リソースをオンデマンドで使用し、使用量に応じて料金を支払うことができるようになり、従来のデータ センターの構築と運用および保守モデルが完全に覆されます。上記の簡単な紹介から、OpenStack はプライベート クラウド、パブリック クラウド、ハイブリッド クラウドを構築できることがわかります。 IAAS 層サービスを提供するインフラストラクチャ クラウド コンピューティング管理プラットフォームです。 OpenStack 自体は、上記の機能を実行するために複数の機能コンポーネントで構成されています。 OpenStackはコミュニティによってメンテナンスされているため、大手企業やコミュニティの支援を受けて各コンポーネントの機能が継続的に改善され、新しい機能コンポーネントが次々と登場しています。現在、OpenStack でよく使用されるコンポーネントは主に次のカテゴリです。 認証モジュール(Keystone) コードネームは Keystone で、OpenStack フレームワーク内のモジュールであり、主に認証、サービス ルール、サービス トークン機能の管理を担当します。リソースへのユーザー アクセスにはユーザー ID と権限の検証が必要であり、サービス実行操作にも権限の検出が必要であり、これらはすべて Keystone を通じて処理する必要があります。 Keystone は、サービス バス、または OpenStack フレームワーク全体のレジストリに似ています。他のサービスは、Keystone を通じてサービス エンドポイント (サービス アクセス用の URL) を登録します。サービス間の呼び出しでは、ターゲット サービスを見つけるためにターゲット サービスのエンドポイントを取得するために Keystone 認証が必要です。 コンピューティング モジュール (Nova) コードネームはNovaで、コンピューティングリソース、ネットワークリソース、ストレージリソースなどのスケーラビリティ管理を主に担うプラットフォームです。OpenStackにおけるコンピューティングリソース制御モジュールです。 Nova 自体は仮想化機能を提供しておらず、関連するサポートされているドライバーを通じて KVM、Power VM、VMware などのさまざまなハイパーバイザーと対話する必要があります。 一目 コードネームは Glance で、主に仮想マシンイメージの登録、ログイン、取得に使用される OpenStack イメージ サービスの管理を担当します。このサービスは、VM イメージのメタデータを照会し、実際のイメージを取得できる REST API を提供します。 Image Service によって提供される仮想マシン イメージは、単純なファイル システム オブジェクト ストレージから OpenStack などのオブジェクト ストレージ システムまで、さまざまな場所に保存できます。 ダッシュボードモジュール (Horizon) コードネームは Horizon で、OpenStack のダッシュボードであり、ほとんどのオブジェクト指向操作を完了できる Web ベースのグラフィカル ユーザー インターフェイスを提供します。このインターフェースを通じて、管理者は OpenStack をすぐに使い始め、一般的な操作を実行できます。 ブロックストレージモジュール(Cinder) コードネームは Cinder で、主に OpenStack のブロック ストレージの管理を担当します。 VM に永続的なストレージ サービスを提供します。バージョン F 以降は Nova-volume から分離され、独立してブロック ストレージ サービスを提供する Cinder と命名されました。 ネットワークモジュール (Neutron) コードネームは Neutron で、OpenStack におけるネットワーク管理を主に担当しており、すべてのコンポーネントの中で最も複雑なモジュールでもあります。 OpenStack 内のすべての仮想および物理ネットワーク アクセスと転送動作を管理し、ファイアウォールや分離などの高度なネットワーク管理機能を提供します。 オブジェクト ストレージ モジュール (Swift) コードネームはSwiftで、OpenStackで提供されるオブジェクトストレージシステムであり、すべてのコンポーネントの中では比較的知名度が低いです。なぜそうなるのでしょうか?これは、Restful Http インターフェースを使用し、主にインターネット向けのサービスを提供しているためと考えられます。まだ多くの企業に広く受け入れられているわけではありません。 学習の難しさ OpenStack の学習は難しく、導入プロセスは非常に面倒で落とし穴も多いと多くの人が報告しています。さらに、問題が発生した場合には強力なトラブルシューティング能力が求められ、高い Linux スキルが求められます。 OpenStack はオープンソース製品であるため、企業は実際のニーズに合わせてカスタマイズできますが、環境構築やその後の運用・保守を支援するために、技術者にはプログラミングの基礎知識も求められます。前述したように、ネットワーク モジュールはおそらく OpenStack の中で最も複雑なモジュールです。複雑な構造と多くの概念を持っています。特定のネットワーク基盤がなければ、OpenStack を実際に使用することはできません。 私は OpenStack に長く携わっているわけではありませんが、OpenStack の導入から運用、保守までの苦労を経験してきました。学習の過程で、私は一つの穴から別の穴へと飛び移り、まるで水から出たことがないかのような気分でした。ご存知のとおり、OpenStack は、ストレージ、コンピューティング、ネットワーク、Web、データベースなどの複数のテクノロジーを統合した完全なクラウド コンピューティング ソリューション フレームワークです。このアプローチにより、サービスの柔軟性が確保され、さまざまなアプリケーション シナリオに適応できますが、学習の難易度も高まります。 TWT の優れたプラットフォームの助けを借りて、OpenStack を学習する際の困難さと懸念を皆さんと共有し、それが皆さんの役に立ち、同時に私自身もより多くのことを学ぶことができることを願っています。 1. 自動化知識の蓄積 OpenStack を十分に習得するには、自動化されたスクリプトや簡単な開発に関する知識が必要です。ご存知のとおり、OpenStack の導入と運用には多くのオープンソース テクノロジのサポートが必要です。たとえば、高可用性には、keepalived、pacemaker、HAproxy などのソフトウェアが必要です。運用と保守には、puppet、ansible、saltstack などのソフトウェアが必要です。 OpenStack の導入は複雑であり、手動で導入すると悲惨な結果になり、エラーが発生しやすくなります。したがって、自動デプロイメントでは、人的介入を減らし、エラー率を下げるために、通常、自動デプロイメント スクリプトが使用されます。この点では、主にPythonとbashシェルを学習することをお勧めします。結局のところ、OpenStack コードの多くは Python で書かれています。空き時間(1日1回)に、OpenStackのソースコードをさらに読むことをお勧めします。理解できなくても問題ありません。読みながら学べます。これは、後で知識を消化し理解するのに役立ちます。 2. データベース知識蓄積 ダッシュボードを除き、OpenStack の他のすべてのコンポーネントにはデータベースのサポートが必要です。 MySQL でも MariaDB でも、その他のデータベースでも構いません。多くの場合、ユーザーはインターフェースを通じて OpenStack を操作します。データベースの変更を必要とする問題が発生した場合、データベースのトラブルシューティングを行う能力、または少なくとも熟練した操作スキルを持っている必要があります。たとえば、インターフェース上のホストを削除するコマンドを発行したが、何らかの状況により正常に操作できないという場合がありました。この時点で、統計エラーを回避するために、バックグラウンドの Nova データベースで関連するレコードを見つけ、更新ステートメントを通じてそれらを削除済みに変更する必要があります。もちろん、これは単なる一般的な例です。今後、OpenStack を学習していく中で、データベースを頻繁に扱うことになるでしょう。イライラせずにオープンソースの概念を確立してください。 3. ネットワーク知識の蓄積 OpenStack の中で最も複雑で、面倒なコンポーネントは、ネットワーク モジュール [Neutron] です。ネットワークモジュールの大きな落とし穴を乗り越えることができれば、OpenStackの60%を学んだことになると言っても過言ではありません。多くの人が OpenStack を学習中ですが、その多くはネットワークの穴で失敗します。ネットワークの物理デバイスから論理構成、さらにはアーキテクチャに至るまで、すべてに精通している必要があります。たとえば、単純な VLAN、フラット、DHCP、ブリッジ (Linux ブリッジまたは ovs)、NAT とルーティング、さらには SDN テクノロジーについても知っておく必要があります。 OpenStackにはネットワーク関連の命令が多く存在し、機能も非常に複雑です。現在のテナントのすべてのネットワーク情報を表示するために使用される neutron net-list など、よく使用されるコマンドをいくつか学習する必要があります。 --all-tenant を追加すると、すべてがリストされます。 Neutron net-show NETID は、ネットワークに関する詳細情報を表示します。 Neutron net-create はネットワークを作成し、net-delete はデータを削除します。詳しい手順については、OpenStack の公式 Web サイトを参照することをお勧めします。 4. 知識の蓄積 約 10 年間の開発を経て、OpenStack は業界で一般的に使用されているストレージ タイプをサポートするようになりました。 NFS、SAN、またはローカル モードのいずれであってもかまいません。機能的には、Open Stack でよく使用されるストレージには Swift オブジェクト ストレージが含まれます。これは AWS の S3 サービスに似ていますが、Swift はより強力なスケーラビリティ、冗長性、永続性を備えており、もちろん S3 API とも互換性があります。 Cinder ブロック ストレージは、AWS の EBS に似たブロック ストレージ サービスを提供します。インターフェース操作を通じて仮想マシンにマウントし、永続的なデータ ストレージを提供できます。ストレージ知識の蓄積は、OpenStack のストレージ使用量を合理的に計画するのに役立ちます。 Ceph、GPFS などの分散ストレージは、OpenStack 市場の大部分を占めています。OpenStack ストレージの安定性とデータの信頼性を確保するには、ストレージ構成とバックアップのスキルに精通している必要があります。 5. 仮想化知識の蓄積 OpenStack は、KVM、Hyper-V、VMWare、Xen、Docker などの主流の仮想化テクノロジーをサポートしています。ご覧のとおり、OpenStack は主に Libvirt を使用して仮想マシンの操作を実行しますが、操作のためにネイティブ API を直接呼び出すこともサポートしています。仮想化の機能を理解するために、ハイパーバイザーは、下位レベル (ホスト OS) のハードウェア リソース (物理 CPU、メモリ、ディスク、ネットワーク カード、グラフィック カードなど) をカプセル化して分離し、別の形式の論理リソースに抽象化してから、上位レベル (ゲスト OS) に提供して使用できるようにします。つまり、ハイパーバイザーは実際にはホスト OS とゲスト OS を接続するミドルウェアであることがわかります。もちろん、仮想化では 1 つのリソースを複数のコピーに抽象化したり、複数のリソースを 1 つのコピーに抽象化したりできます。 典型的なシナリオ分析 シナリオ 1: OpenStack をインストールする前の基本的な環境の準備 OpenStack は、補助的なサポートのために多くのオープンソース ソフトウェアを必要とするオープンソース アーキテクチャ プラットフォームです。したがって、OpenStack をインストールする前に、事前に次の準備を行う必要があります。 1. 関連するオープンソース ソフトウェアをダウンロードするか、YUM ローカル ソースをビルドして依存関係を解決します。個人的な経験に基づくと、手動介入なしでオープンソース ソフトウェアをスムーズにインストールできるように、事前に YUM ソースを準備しておくことをお勧めします。 2. 事前に該当管理ノードのFQDN名をDNSに登録する 3. ネットワーク環境が妨げられていないことを確認し、ネットワーク経由で管理 VLAN と仮想マシン VLAN を分離します。 4. 事前にクラスターIPを準備する 5. ファイアウォールやSelinux機能の無効化などのシステム環境の準備 シナリオ2: 自動構成ツールの準備 現在、OpenStack は、Mirantis の Fuel ツールや他の IT ベンダーが開発したツールなど、単純でエラーが発生しやすい自動化された方法で導入されています。ただし、後の段階での具体的な構成変更は、ユーザーが自分の習慣に応じて決定する必要があります。バッチ構成ツールとして Salt Stack を使用します。 1. Salt Stackマスターノードを別の仮想マシンにインストールする 2. すべての管理ノードとコンピューティングノードにSalt Stackクライアントをインストールする 3. クライアントのSalt Stack構成ファイルをマスターサーバーを指すように構成します。 4. Saltを介してすべてのクライアント管理を受け入れる '' –Aコマンド 5. Saltをリリースし、環境が正常であることを確認するためにtest.pingを実行します。 シナリオ3: OpenStackの共同デバッグテスト OpenStack をインストールした後、その環境が正常に動作するかどうかを確認する必要があります。一般的には、以下の手順に従って段階的に確認できます。 1. すべてのコンポーネントのログをチェックして、エラー情報があるかどうかを確認します。 2.ダッシュボードにログインし、すべてのコンポーネントを参照します。 3. 仮想マシンを作成し、削除、構成の変更、ホット移行とコールド移行など、仮想マシン上でさまざまな日常的な操作を実行します。 4. コンピューティングノードを物理的にシャットダウンし、別のノードでVMを起動できるかどうかを確認します(高可用性が実装されている場合) 5. すべてのコンピューティングノード間での大容量ファイルの転送をシミュレートする 要約する 上記は、OpenStack 学習における重点ポイントの説明であり、OpenStack が学習に重点を置くべき重要な領域と知識を指摘しています。上記の紹介を通じて、読者は OpenStack の起源と機能、導入に必要な準備、最も一般的な問題が発生する場所を理解することができます。もちろん、私も OpenStack を学習している途中であり、この考え方に従って学習しています。問題に遭遇したとき、私はよく TWT の専門家にサポートと回答を求めます。 TWT と OpenStack の公式 Web サイトをより頻繁に閲覧して、新しい知識ポイントを学習し、より多くの困難を解決することができます。改めて、この記事が OpenStack の学習に役立つことを願っています。 著者: クラウド コンピューティング、仮想化アーキテクチャ設計、企業情報化構築、自動化された運用と保守の分野で長年の経験を持つ Zhang Zhiqiang。 X86、電源、ストレージ、仮想化などのハードウェア デバイスのチューニングと構成に精通しています。ハイブリッドメタアーキテクチャと管理、情報セキュリティとネットワークアーキテクチャの設計と運用に関して豊富な経験を持っています。 |
<<: クラウド戦略においてミックスアンドマッチが重要な5つの理由
>>: 【参加登録】YOCSEF TDS「産業用インターネットとエッジコンピューティング」
Hawkhostのブラックフライデーとサイバーマンデーのプロモーションが発表されました。Hawkho...
月収10万元の起業の夢を実現するミニプログラム起業支援プラン過去1年間で、「Mimeng」には合計7...
6月14日、アリババクラウドは、ローカルデータセンターに導入できる初のエンタープライズレベルのブロッ...
Dogyun は 1 年前から存在しています。オリジナルのドイツの cn2 VPS をベースに、新し...
[[395230]] IDCが4月22日に発表した最新の「世界と中国のパブリッククラウドサービス市場...
モグジエのCEOである陳奇氏にインタビューする前に、私はある疑問について考えていました。なぜ、同じく...
以前は百度の単語分割研究にあまり注意を払っていませんでしたが、ある時、最適化を行っていたときに、単語...
VMware (NYSE: VMW) は今週の VMworld 2020 で VMware Futu...
どの職業にも一定の職業倫理があり、SEO 担当者も例外ではありません。これは百度で検索すればわかりま...
中国の専門職称号評価制度では、編集者と記者は基本的に並行しており、一対一で対応しています。中級レベル...
昨日、ネットユーザー「@丸子」はWeiboで、タオバオストアが店舗の「装飾」を利用して取引記録、ネッ...
今日のデータセンター管理は、明らかにかつてないほど困難になっています。人工知能、ビッグデータ、モノの...
【編集部注】12306列車の乗車券購入システムは休日になると必ず麻痺し、大きな影響を及ぼします。国慶...
現在、多くのウェブマスターが入札を行っていますが、そのうち約30%は入札後に後悔しています。入札では...
クラウド コンピューティングは、今日の企業が収益を上げるために競争している分野です。 AWS などの...