1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

VMware Data Services Managerを使ってみる

Last updated at Posted at 2024-07-15

概要

VMware Data Services Manager (以降DSM) をvSphere上に構築してみたため、手順を備忘として残します。
一応過程でMinIOが必要だったため、その手順も書いておきます。

本記事の対象

  • VMware Data Services Managerを使ってみたい方
  • DB展開を楽にしたい方

VMware Data Services Managerとは

VMwareが提供するデータベース管理を楽にするためのツールになります。
データベースの展開からバックアップ、ログ出し等をGUIから行えるようになる感じです。
仮想アプライアンスとして提供されていて、vSphereと連携を行って利用できます。

image.png

画像引用元

構築手順の流れ

以下手順で行っています。

  • MinIOの構築
  • VMware Data Services Managerの展開

今回の環境前提

  • vSphere8.0
  • 分散ポートグループは用意済み
  • Broadcom Support Portal のアカウント作成済み (SIDは不要)

MinIOの構築

DSMではオブジェクトストレージとしてS3 or S3互換ストレージが必要となります。
今回はS3互換ストレージのMinIOを用意していこうと思います。
流れは以下となります。

  1. Ubuntuマシンの準備
  2. minioの展開
  3. TLS化
  4. アクセスキーの作成

Ubuntuマシンの準備

MinIOを今回はUbuntuのサービスとして用意します。
スペックは以下で仮想マシンを構築しておきます。

項目 スペック
CPU 2コア
メモリ 4GB
ストレージ 200GB

また、今回はminio.stjam.homeという名前で名前解決できるように、DNSにレコードも追加しています。

MinIOの展開

では用意したUbuntuにMinIOを展開していきます。
まずは公式ドキュメント通りにパッケージをインストールします。

wget https://dl.min.io/server/minio/release/linux-amd64/archive/minio_20240710184149.0.0_amd64.deb -O minio.deb
sudo dpkg -i minio.deb

そうしたら、以下ディレクトリにサービスファイルがあるため、必要に応じて編集します。
今回はそのまま使います。

sudo vi /usr/lib/systemd/system/minio.service
/usr/lib/systemd/system/minio.service
[Unit]
Description=MinIO
Documentation=https://docs.min.io
Wants=network-online.target
After=network-online.target
AssertFileIsExecutable=/usr/local/bin/minio

[Service]
Type=notify

WorkingDirectory=/usr/local

User=minio-user
Group=minio-user
ProtectProc=invisible

EnvironmentFile=-/etc/default/minio
ExecStart=/usr/local/bin/minio server $MINIO_OPTS $MINIO_VOLUMES

# Let systemd restart this service always
Restart=always

# Specifies the maximum file descriptor number that can be opened by this process
LimitNOFILE=1048576

# Turn-off memory accounting by systemd, which is buggy.
MemoryAccounting=no

# Specifies the maximum number of threads this process can create
TasksMax=infinity

# Disable timeout logic and wait until process is stopped
TimeoutSec=infinity

SendSIGKILL=no

[Install]
WantedBy=multi-user.target

# Built for ${project.name}-${project.version} (${project.name})

続いてMinIOに格納されるファイルを配置するディレクトリを用意して、操作用のユーザーも作成しておきます。
今回はディレクトリは”/var/minio”、ユーザーはminio-userを用意しています。

sudo mkdir /var/minio
sudo groupadd -r minio-user
sudo useradd -M -r -g minio-user minio-user
sudo chown minio-user:minio-user /var/minio

続いて環境変数ファイルを編集します。
格納場所はサービスファイルにて指定されており、今回は”/etc/default/minio”になります。

sudo vi /etc/default/minio

ログインするためのユーザー名やパスワード、ファイルの格納先などを指定しておきます。

/etc/default/minio
MINIO_ROOT_USER=<任意のユーザー名>
MINIO_ROOT_PASSWORD=<任意のパスワード>
MINIO_VOLUMES="/var/minio"
MINIO_OPTS="--console-address :9001"

ここまでできたら一旦サービスを起動できる状態になりましたので、起動していきます。

sudo systemctl start minio.service
sudo systemctl status minio.service
● minio.service - MinIO
     Loaded: loaded (/usr/lib/systemd/system/minio.service; disabled; preset: enabled)
     Active: active (running) since Sat 2024-07-13 08:19:16 UTC; 4s ago
       Docs: https://docs.min.io
   Main PID: 2718 (minio)
      Tasks: 7
        CPU: 400ms
     CGroup: /system.slice/minio.service
             └─2718 /usr/local/bin/minio server --console-address :9001 /var/minio

http://IPアドレス:9001にアクセスして、指定したユーザー情報でログインができたらOKです。

image.png

再起動後もサービスを起動するようにしておきます。

sudo systemctl enable minio.service

公式インストール手順

TLS化

続いて自己証明書を用いてのTLS化を行っていきます。
DSMではTLS化をしていないと、登録する際に弾かれてしまうため、必要となります。

まず自己証明書作成用の設定ファイルを用意します。
基本はCNとSANが設定されていれば問題ないかなとは思います。

minio-ssl.cnf
[ req ]
default_bits       = 2048
distinguished_name = req_distinguished_name
req_extensions     = req_ext
x509_extensions    = v3_req
prompt             = no
[ req_distinguished_name ]
C  = JP
CN = minio.stjam.home
[ req_ext ]
subjectAltName = @alt_names
[ v3_req ]
subjectAltName = @alt_names
[ alt_names ]
DNS.1   = minio.stjam.home

それでは作成した設定ファイルを用いて証明書の作成を以下コマンドにて実行します。

openssl req -newkey rsa:2048 -nodes -keyout private.key -x509 -days 365 -out public.crt -config minio-ssl.cnf -extensions v3_req

作成できたら、証明書を任意の場所に格納して権限を通しておきます。
今回は/opt/minio/certsに格納しています。

sudo mkdir -p /opt/minio/certs
sudo mv public.crt /opt/minio/certs/public.crt
sudo mv private.key /opt/minio/certs/private.key
sudo chown minio-user:minio-user /opt/minio/certs
sudo chown minio-user:minio-user /opt/minio/certs/*

最後に証明書を用いるように、MinIOの環境変数ファイルを編集しておきます。

sudo vi /etc/default/minio
/etc/default/minio
MINIO_OPTS="--console-address :9001 --certs-dir /opt/minio/certs"

サービスを再起動します。

sudo systemctl restart minio

今度はhttpsにしてアクセスを行い、問題なくアクセスできたら成功となります。
例: https://ドメイン名:9001

image.png

バケット作成

続いて必要なバケットの作成を行っておきます。
DSMの公式ドキュメントの要件に従い、以下4つを作成しておきます。

  • dsm-provider-repo
  • dsm-provider-log
  • dsm-provider-bk
  • dsm-db-bk

これらのバケットは後ほどDSMに登録します。

image.png

DSMのオブジェクトストレージの要件

アクセスキーの作成

続いてDSMにてバケットを利用するためのアクセスキーを作成します。
MinIOのコンソールからアクセスキーは作成できます。

image.png

今回は必要な権限だけ割り当てるため、Policyを以下に変更しています。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:GetBucketLocation",
                "s3:ListBucket",
                "s3:ListBucketMultipartUploads"
            ],
            "Resource": [
                "arn:aws:s3:::dsm-provider-repo",
                "arn:aws:s3:::dsm-provider-log",
                "arn:aws:s3:::dsm-provider-bk",
                "arn:aws:s3:::dsm-db-bk"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:DeleteObject",
                "s3:GetObject",
                "s3:ListMultipartUploadParts",
                "s3:PutObject",
                "s3:AbortMultipartUpload"
            ],
            "Resource": [
                "arn:aws:s3:::dsm-provider-repo/*",
                "arn:aws:s3:::dsm-provider-log/*",
                "arn:aws:s3:::dsm-provider-bk/*",
                "arn:aws:s3:::dsm-db-bk/*"
            ]
        }
    ]
}

作成後は一度だけ表示されるSercret Keyをメモするか、ダウンロードしておきます。

以上でMinIOの準備は完了となります。

VMware Data Services Managerの展開

それではDSMの作成に移ります。
手順としては以下となります。

  • 必要資材のダウンロード / 展開
  • Permission の作成
  • Infrastructure Policy の作成
  • バケットの追加
  • Data Services の有効化
  • Database の作成

必要資材のダウンロード / 展開

まず必要資材のダウンロードと展開を行っていきます。

Broadcom Support Portalにアクセスし、Tanzuの画面からVMware Data Services Mangerを見つけて開きます。

開いたらバージョンを選び、以下2つをダウンロードしておきます。
(本記事では2.0.3を利用)

  • Provider Virtual Appliance
    • ファイル名: dsm-va-2.0.3.4185-23780592.ova
  • Air-gap Environment Repository
    • air_gap_deliverable .zip
      image.png

ダウンロードが完了したらまずovaを展開していきます。
ただしvSphereのクライアントプラグインとして展開を行います。

vSphereコンソールにて[管理]-[クライアントプラグイン]を開き、追加を選択します。

image.png

するとOVAを展開するのと同じような画面が開かれるため、先程ダウンロードしたovaにて設定を行いインストールを行います、

image.png

完了後ページをリロードし、インベントリの最上位 (vCenter)のオブジェクトを選択して、構成を選択します。
するとData Services Managerという項目が追加されていることが確認できます。

image.png

続いてエアギャップ向けに提供されているリポジトリのファイルを展開していきます。
air_gap_deliverable .zipを解答すると、以下3つのフォルダになります。

  • dsm-control-plane
  • dsm-data-plane
  • manifests

このフォルダをすべてMinIOの”dsm-provider-repo”バケットにアップロードしておきます。

image.png

以上で資材の準備は完了となります。

エアギャップ環境の手順

Permissionの作成

DSMのコンソールにアクセスするためにPermissionを作成する必要があります。
vSphereのコンソールに追加されたDSMの中にあるPermissionsを選び、作成を行っておきます。

image.png

作成後はACCESS DATA SERVICES MANAGERをクリックするとDSMのログイン画面に遷移します。
先ほど作成したPermissionで無事アクセスできたらOKです。

image.png

Infrastructure Policy の作成

DSMにてDatabaseを作成する際にIPアドレスやvSphereの展開先フォルダやストレージポリシーなどを指定するためにInfrastructure Policyを作成していきます。

vSphereコンソールのDSMの項目にて、まずIPプールを作成します。
最低2つあれば、このあとDatabaseは展開できるはずですが、今回は余裕をみて10個指定しておいてます。

image.png

続いてVMクラスの作成を行います。
なお、デフォルトで3つ用意されており、特に細かい調整が不要であればそのまま使えます。
今回は作成せずに進みます。
image.png

それでは、作成したIPプールやVMクラスを用いて、Infrastructure Policyを作成していきます。
今回は以下内容で作成しておきます。

image.png

作成後、DSMのコンソールを確認すると、Policyが追加されていることが確認できます。
(画像は2つありますが、1個用意すれば大丈夫です)

image.png

バケットの追加

続いてDSMにMinIOで用意したバケットの追加を行います。
DSMコンソールのStorage Systemから設定できます。

image.png

設定の際には以下項目の入力が求められます。
それぞれ用意したアクセスキーなどを用いて入力しておきます。
※Storage URLはhttpsで、ポート番号を9000を指定します (例: https://<ドメイン名>:9000)

image.png

無事4つすべて追加でき、以下のようにComplitedにステータスが変われば完了です。

image.png

Data Services の有効化

ここまで準備が完了したら、Data Servicesの有効化ができるようになっているはずです。
DSMコンソールのVersion & UpgradeのData Servicesを開き、表示された項目の3点リーダーをクリックしてEnableを選びます。

少し時間がかかりますが、Enabledに変わります。
※裏側にてMinIOのdsm-provider-repoバケットにリポジトリを展開されており、確認するとdockerというフォルダが増えていることが確認できると思います。

image.png

Database の作成

それではいよいよDatabaseの作成を行っていきます。
今回はPostgresを展開しておきます。
Create Databaseを選択し、必要な項目を入力していくとそのまま作成プロセスが動作します。

image.png

しばらくすると、DatabaseがReadyになり、利用可能となります。
※途中でエラーが表示されたりしますが、一時的なものが多いのですぐに削除等はしないことを推奨

image.png

Databaseをクリックすると作成されたDBの詳細を確認できます。
COPY CONNECTION STRINGというところをクリックすると、Databaseへの接続に必要な情報を取得できます。

image.png

以下のようなものがクリップボードにコピーされます。

postgres://pgadmin:<パスワード>@<IPアドレス>:5432/posgre-01

それではこの情報を用いて、PgAdminを用いて、動作確認をしてみます。
簡易的なSQLを実行して、無事動作すればOKです。

image.png

まとめ

今回はDSMを構築してみました。
実はMinIO自体も構築が初めてだったため、結構勉強になりました。
DSM自体は最近VMwareのプロダクトで使わたりするケースもあったりする印象なので、また使う機会があったらいいなという印象です。

おまけ

今回エアギャップ版で展開を行いましたが、本来はTanzu API Tokenを用いてデータベーステンプレート等を取得することもできます。

image.png

しかし公式側で直近移行等が実施されている影響か本記事執筆段階では利用できませんでした。。
(Tokenは認証されるが、リポジトリにアクセスできていない雰囲気)

他の方でも同事象はおられました。
https://cormachogan.com/2024/07/02/data-services-manager-air-gap-deployment-steps/

今後復旧したらこちらの方法でも可能という認識だけ持っておきます。。

参考にしたサイト

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?