今回はNutanix Objects Storageを構築してみます。Objectsは、Nutanixがネイティブに提供しているオブジェクトストアサービスで、AWS S3互換のREST APIインターフェイスを使用して設計されており、ペタバイト単位の非構造化データや機械生成データを処理できます。
Objectsは、サードパーティ製品などと連携したバックアップや長期保存、またアプリケーション開発者がS3互換のHTTP REST APIリクエストを使用して、さまざまな場所からオブジェクトに簡単にアクセスできるといったユースケースがあげられます。また、Nutanix Mineでも内部的に使用されます。
※このブログでは、個人の検証や知見をもとに情報を公開していますので、自己責任でご活用ください。実際にNutanix Objectsを構築される際はNutanixのドキュメントに従い、作業を実施してください。
目次
今回の環境
Platform: HPE-DX360-Gen10 Plus-4LFF x 4
AOS: 6.5.1.5 LTS
AHV: 20201105.30417
Prism Central: pc.2022.6.0.1
Objects バージョン: 3.6
今回のイメージは以下の通りです。今回は、Prism Centralをデプロイしている既存のAHVクラスターに対して、別のAHVクラスターをObject専用のクラスターとして導入します。
1. 事前準備
以下Nutanix Objectsを展開する前に実施した準備項目です。
- Objectsを展開するAHVクラスターをPrism Centralへ登録
- Prism Centralは別のAHVクラスター上でもよい
- Prism Centralと各クラスターでDNSとNTPを適切に設定する
- Objectsを展開するAHVクラスターにVIPとiSCSIデータサービスIPを設定する
- Prism Centralが展開されているクラスターでiSCSIデータサービスIPを設定する
- Objectsを展開するAHVクラスターに「Objectsストレージネットワーク」用の仮想ネットワークをIPAMありで作成する
- Objectsを展開するAHVクラスターに「Objectsパブリックネットワーク」用の仮想ネットワークをIPAMありで作成する
- Objectsの固定パブリックIPを名前解決できるようにしておく(ロードバランサーが複数台の場合はDNSラウンドロビンを構成するなど)
その他、前提条件やネットワーク要件などについては以下をご参照ください。
Deployment and Network Prerequisites
https://portal.nutanix.com/page/documents/details?targetId=Objects-v3_6:top-prerequisites-c.html
2. Nutanix Objectsの有効化
Nutanix Objectsを使用するには、はじめにPrism CentralにてNutanix Objectsを有効化する必要があります。▽Prism Centralのメニューから「Objects」を選択します。
▽「Enable」をクリックしてオブジェクトストアサービスを有効化します。
▽有効化すると以下のような画面が表示されます。
ちなみにObjectsを有効化すると、Prism Centralが展開されているクラスターへ「msp-xxxxxxxx」というボリュームグループが作成されていました。これは、Prism Centralで実行される「マイクロサービスプラットフォーム (MSP)」というサービス関連で使われているようですが、ドキュメントにもこのボリュームグループについての記載はなかったので詳細は割愛します。
<参考>
Microservices Platform (MSP)
https://portal.nutanix.com/page/documents/details?targetId=Objects-v3_6:top-msp-lifecycle-c.html
Enabling Objects
https://portal.nutanix.com/page/documents/details?targetId=Objects-v3_6:top-enable-objects-t.html
3. オブジェクトストアの作成
▽Prism CentralにてObjectsを有効化した画面から「Next」をクリックします。
▽続いて「Create Object Store」をクリックします。
▽オブジェクトストア作成の画面にてはじめに基本的な構成を入力します。以下触ってみた結果の解説をつけていますのでご参照ください。
- Object Store Name: クライアントと連携する時にDNSで名前解決したりするので、DNSレコードに追加する予定の名前をつけるとよいです。
- Domain: Object Store用に専用のドメインをつける(Objects用のサブドメインにするなど)といった感じでドキュメントでは書かれていますが、Object StoreがADドメイン参加するわけではないので、DNSで名前解決できるようにすればよさそうです。逆に既存のDNSのプライマリゾーンやサブドメインを指定してもいいと思います。
- Cluster: Objectsの展開先となるクラスターを選択します。
- Worker Nodes: ワーカーノード(ワーカーVM)のサイジングについてはあまり情報がなかったのですが、HTTP要求の多さなどによってNutanix Sizerが適切な台数を計算するようです。ノード障害を考えた場合、クラスター内のノード数よりも少ない数にしておくのがよさそうなので、今回は4ノードクラスター上にワーカーノードを3台としました。
▽続いて、Objectsストレージネットワークの情報を入力していきます。
- Storage Network: こちらは、展開先のAHVクラスターであらかじめ作成済みの仮想ネットワーク(IPAMあり)を指定します。ワーカーノードが3台構成の場合は、合計で8個のIPアドレスが必要となりますので、IPAMの設定時にIPプールのIPを8個以上で確保しておく必要があります。また、このストレージネットワークはCVMと同一セグメントへ配置することが推奨となります。
- Object Store Storage Network static IPs: こちらはStorage Networkと同セグかつIPAMのIPプールの範囲外で2つの固定IPを別途指定します。この2つのIPはMSP DNSサービスやAPI Serverとしての役割で使用されるようです。
ワーカーノード数に対する必要なIPアドレス数については以下をご参照ください。
AHV Configuration >> IP Address Consumption
https://portal.nutanix.com/page/documents/details?targetId=Objects-v3_6:top-network-config-ahv-r.html
▽続いて、Objectsパブリックネットワークの情報を入力していきます。
- Public Network: こちらは、外部クライアントからオブジェクト ストアへのアクセスを許可するために使用されるネットワークのようです。展開先のAHVクラスターであらかじめ作成済みの仮想ネットワーク(IPAMあり)を指定します。最大で4つのIPが必要となりますので、少なくとも4つの利用可能なIPをIPプールに追加した仮想ネットワークを指定するとよさそうです。
- Public Network static IPs: こちらは、S3クライアントがオブジェクトストアにアクセスする際の接続先IPになります。こちらもPublic Networkと同セグかつIPAMのIPプールの範囲外で固定IPを別途指定します。今回はロードバランサーが2台なので2つのIPを指定しますが、ワーカーノードの数によってロードバランサーの数も増減しますので、ロードバランサーの数に応じてIPも指定します。
▽設定が完了したら、はじめに検証プロセスが実行されます。ここでは、ネットワークの構成が適切か、といったことなどがチェックされます。
検証が完了したら「Create Object Store」をクリックして、Object Storeの作成を開始します。(30分以上かかります)
▽作成が完了すると、Prism CentralのObjects画面にObject Storeとして表示されます。
▽作成先のAHVクラスターのPrism Elementでも、Objects関連のロードバランサーとワーカーノードが作成されていることが確認できます。
▽また、ストレージ画面ではObjects用に作成された複数のボリュームグループが確認できます。(合計36個)
<参考>
Object Store Service Deployment
https://portal.nutanix.com/page/documents/details?targetId=Objects-v3_6:top-deployment-prism-central-c.html
これで、Object Storeの作成は完了です。
これ以降は、Nutanix Mine with HYCUの環境を構築しますので、それに合わせてObjectsをカスタマイズしたいと思います。