本文へスキップ
シェア
Xでシェアする Facebookでシェアする
ブログ

【てくさぽBLOG】IBM Power Virtual ServerのAIX環境とIBM Cloud Object Storageを接続してみた(Part2)

こんにちは。
てくさぽBLOGメンバーの高村です。

本ブログは IBM PowerSystems Virtual Server(PowerVS)から IBM Cloud Object Storage(IBM COS)へバックアップ取得を想定し、AIX環境から Proxyサーバ経由で IBM COS へファイル転送を行う手順をご紹介するブログです。

前回の Part1 では、PowerVS、VSI for VPC、Direct Link Connect、IBM COS のプロビジョニング手順をご紹介しました。
Part2(本ブログ)では、各サービスの設定とファイル転送を行います。

Part1 でもご説明しましたが、以下の図は検証の接続イメージ図です。
今回はセクション1,2,3,4の IBM COS の設定、Proxyサーバソフトウェアの設定、AIXの設定、最後にAIX環境からProxyサーバ経由でIBM COSへファイル転送を行う手順をご紹介します!

検証の接続イメージ

1)IBM COSの設定

・作成したバケットにアクセス・ポリシーを設定します。作成したバケットをクリックします。

IBM COSの設定-1

・バケット・アクセス・ポリシーの設定画面でユーザをプルダウンして選択し「アクセス・ポリシーの作成」をクリックします。

IBM COSの設定-2

・アクセス・ポリシーが作成されました。

IBM COSの設定-3

・左側メニューから「サービス資格情報」を選択し「新規資格情報+」をクリックします。

IBM COSの設定-4

・「HMAC 資格情報を含める」を「オン」にして「追加」をクリックします。

IBM COSの設定-5

・サービス資格情報が作成されました。
※AIXの設定で赤枠内のaccess_key_idとsecret_access_keyが必要なのでテキストなどにメモしておきましょう

IBM COSの設定-6

IBM COSの設定が完了しました。

2)VSIのセキュリティー・グループ設定

IBM COSへの通信はhttps (port443) を使用します。VSIのセキュリティー・グループ設定でインバウンド・ルールにport443の許可を設定をします。

・ナビゲーションメニューから「VPCインフラストラクチャー」「セキュリティー・グループ」を選択、「ルール」タブを選択し、インバウンド・ルールの「作成+」をクリックします。

VSIのセキュリティー・グループ設定-1

  • 以下の設定で作成します。
    • プロトコル:TCP
    • ポート最小値:443
    • ポート最大値:443
    • ソースタイプ:CIDRブロック
    • IPの範囲:192.168.1.0/24 (PowerVSのセグメント)

VSIのセキュリティー・グループ設定-2

・インバウンド・ルールにport443許可の設定ができました。

VSIのセキュリティー・グループ設定-3

3)Proxyサーバの設定

Part1でもご紹介しましたが、PowerVS から IBM COS への接続には IBM Cloud (x86環境) 上の Proxyサーバを経由する必要があります。
今回は Proxyサーバソフトウェアとしてリバースプロキシ機能がある nginx を使用します。

・作成した VSI に ssh でログインし、su で rootユーザにスイッチします。
nginx設定のため “/etc/nginx/nginx.conf” を探しましたが見当たりません。RHEL に nginx はデフォルトで導入済みと思い込んでいましたがインストールが必要でした。
yumコマンドを使用してインストールします。

# yum -y install nginx

VSIのセキュリティー・グループ設定-4

・nginxのプロセス起動を確認します。

VSIのセキュリティー・グループ設定-5

・”/etc/nginx/nginx.conf” が作成されていました。次はnginx.confを編集します。

VSIのセキュリティー・グループ設定-6

・その前にファイルのバックアップを行います。

VSIのセキュリティー・グループ設定-7

・viコマンドでnginx.confファイル内のhttp { } の中に下記を追加します。
proxy_passはIBM Cloud資料「Endpoints and storage locations」記載の IBM COS の Direct Endpoint を指定します。

vi /etc/nginx/nginx.confserver {
client_max_body_size 100M;
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name 10.244.64.14;  <VSIのIPアドレス
root /usr/share/nginx/html;

ssl_certificate “/etc/ssl/certs/NGINX-selfsigned.crt”;
ssl_certificate_key “/etc/ssl/NGINX-selfsigned.key”;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 10m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;

location / {
proxy_set_header Host $server_name;
proxy_pass https://s3.direct.jp-tok.cloud-object-storage.appdomain.cloud ;
} <IBM COSのDirect Endpoint

# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;

error_page 404 /404.html;
location = /40x.html {
}

error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}

・nginxにhttps通信のため自己証明書を作成します。以下コマンドを実行します。
今回パラメーターは特に入力せずブランクで設定しました。

# openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/NGINX
-selfsigned.key -out /etc/ssl/certs/NGINX-selfsigned.crt

VSIのセキュリティー・グループ設定-8

・systemctlコマンドでnginxのサービスを再起動し、ステータスを確認します。

# systemctl restart nginx
# systemctl status nginx

VSIのセキュリティー・グループ設定-9

これでProxyサーバソフトウェアの設定は完了です。
コマンドのインストールが必要など、多々躓きました。次は AIX側の設定です。

4)AIXの設定

AIX から IBM COS を操作するために s3cmd というツールをインストールします。
以下 rpmファイルを「Apache 2 Test Pageのrpmファイルダウンロードページ」からダウロードし、SCP などのツールで任意のディレクトリに配置します。


file-5.32-1.aix5.1.ppc.rpm
file-libs-5.32-1.aix5.1.ppc.rpm
python-magic-5.32-1.aix5.1.ppc.rpm
s3cmd-1.6.1-1.aix5.1.noarch.rpm


・rpmコマンドでインストールします。
s3cmd-1.6.1-1.aix5.1.noarch.rpmファイルをインストールしようとしたところ error でインストールできませんでした。どうやら前提ファイルが足りないようです。

# rpm -i file-libs-5.32-1.aix5.1.ppc.rpm
# rpm -i file-5.32-1.aix5.1.ppc.rpm
# rpm -i python-magic-5.32-1.aix5.1.ppc.rpm
# rpm -i s3cmd-1.6.1-1.aix5.1.noarch.rpm
error: Failed dependencies:
python-dateutil >= 2.6.0-1 is needed by s3cmd-1.6.1-1.noarch
#

・以下のrpmファイルを「AIX Toolbox for Open Source Software」からダウンロードし、SCPでAIXに転送し、rpmコマンドでインストールします。
「python-dateutil-2.6.0-1.aix6.1.noarch.rpm」

# rpm -i python-dateutil-2.6.0-1.aix6.1.noarch.rpm

・インストールを失敗した rpmファイルも無事インストールできました。

# rpm -i s3cmd-1.6.1-1.aix5.1.noarch.rpm

・以下のコマンドで環境変数を設定します。

# export PATH=/opt/freeware/bin:$PATH

・以下のコマンドで IBM COS に接続しようとしましたが、エラーが返ってきてしまいました。
エラーの内容からs3cfgのパラメーターが設定されていないようです。

# s3cmd -ls
ERROR: /.s3cfg: None
ERROR: Configuration file not available.
ERROR: Consider using –configure parameter to create one.

・Web で検索して調べたところ s3cmd の初期設定が必要でした。
以下のコマンドを実行して設定します。
※access_key と secret_key は「1) IBM COSの設定」でメモした access_key_id と secret_access_key を入力します。

# s3cmd –configureEnter new values or accept defaults in brackets with Enter.
Refer to user manual for detailed description of all options.

access key and Secret key are your identifiers for Amazon S3. Leave them empty for using the env variables.
access Key:メモした情報
Secret Key :メモした情報
Default Region [US]: <ブランクのままエンターキーで継続

Encryption password is used to protect your files from reading
by unauthorized persons while in transfer to S3
Encryption password:  <ブランクのままエンターキーで継続
Path to GPG program [None]:  <ブランクのままエンターキーで継続

When using secure HTTPS protocol all communication with Amazon S3
servers is protected from 3rd party eavesdropping. This method is
slower than plain HTTP, and can only be proxied with Python 2.7 or newer
Use HTTPS protocol [Yes]: <ブランクのままエンターキーで継続

On some networks all internet access must go through a HTTP proxy.
Try setting it here if you can’t connect to S3 directly
HTTP Proxy server name: <ブランクのままエンターキーで継続

New settings:
access Key: c03ad59f84274b069f69cc60b0b4fb9b
Secret Key: 3b8c9337eff3d611fd7081f6d13223841f19bb72725f7821
Default Region: US
Encryption password:
Path to GPG program: None
Use HTTPS protocol: True
HTTP Proxy server name:
HTTP Proxy server port: 0

Test access with supplied credentials? [Y/n] n <nを入力

Save settings? [y/N] y <yを入力
Configuration saved to ‘/.s3cfg’

・ホームディレクトリの下に .s3cfgファイルが作成されました。
viコマンドで host_baseとhost_bucket の項目を編集します。access_key と secret_key は前述の初期設定で反映済みです。

# cat .sc3cfg
access_key = xxxxxxxxxxxxxxxxx
check_ssl_certificate = False
check_ssl_hostname = False
encrypt = False
gpg_command = None
host_base = 10.244.64.14 <VSIのIPアドレス
secret_key = xxxxxxxxxxxxxxxxx
use_https = True
host_bucket = %(bucket).10.24.64.14 <VSIのIPアドレス
#

・再度 AIX から IBM COS に接続してみたところ接続成功し、IBM COS に作成したバケットが表示されました。

# s3cmd ls
2022-12-12 05:32 s3://icos-test-20221212

ようやく AIX から Proxyサーバ経由で IBM COS に接続することができました。
細かいところで躓いてしまったので少し時間がかかりました。次は AIX から Proxyサーバ経由で IBM COS にファイル転送をしてみたいと思います。

5)IBM COSへファイル転送

AIX から Proxyサーバ経由で IBM COS にファイル転送をします。
今回は1.8GBのファイルを用意し IBM COS への転送時間を Timeコマンドで計測します。
また、Proxyサーバでは dstatコマンドで受信データ量、送信データ量、CPU の使用状況を確認します。

・VSIにログインし、dstatコマンドをインストールします。

# yum -y install dstat

・ファイル転送時にProxyサーバでの受信データ量、送信データ量、CPU使用割合を確認するためdstatコマンドをオプション無しで実行しておきます。

# dstat

・次に AIX にログインし、SCP などで任意のディレクトリに IBM COS に転送するファイルを配置します。

# cd test_data
# ls -l
合計 3756712
-rw-r–r– 1 root system 1923432893 Dec 16 12:06 DB2S_11.5.4_AIXML.tar.gz

・以下コマンドを実行し、IBM COS にファイル転送を行います。
15MB毎に分割されてアップロードされていることがわかります。Timeコマンドの結果から転送時間は2分37秒でした。思っていたよりも速い印象です。

# time s3cmd put /test_data/DB2S_11.5.4_AIXML.tar.gz
s3://icos-test-20221212/DB2S_11.5.4_AIXML.tar.gz
upload: ‘/test_data/DB2S_11.5.4_AIXML.tar.gz’ -> ‘s3://icos-test-20221212/DB2S_11.5.4_AIXML.tar.gz’ [part 1 of 69, 15MB] [1 of 1]
65536 of 15728640 0% in 0s 858.63 kB/s 15532032 of 15728640 98% in 1s 12.11 MB/s 15728640 of 15728640 100% in 1s 7.78 MB/s done
upload: ‘/test_data/DB2S_11.5.4_AIXML.tar.gz’ -> ‘s3://icos-test-20221212/DB2S_11.5.4_AIXML.tar.gz’ [part 2 of 69, 15MB] [1 of 1]
65536 of 15728640 0% in 0s 862.77 kB/s 15728640 of 15728640 100% in 0s 16.22 MB/s done
upload: ‘/test_data/DB2S_11.5.4_AIXML.tar.gz’ -> ‘s3://icos-test-20221212/DB2S_11.5.4_AIXML.tar.gz’ [part 3 of 69, 15MB] [1 of 1]
65536 of 15728640 0% in 0s 865.13 kB/s 15728640 of 15728640 100% in 0s 25.65 MB/s done
-中略-
real 2m37.57s
user 0m4.63s
sys 0m0.70s
#

・Proxyサーバの画面に戻ってdstatコマンドの状況を確認します。
検証では送受信 (send/recv) とも平均30MB/sでした。CPU (user/sys/idle) を見ると使用割合は少ないことがわかります。

# dstat
You did not select any stats, using -cdngy by default.
—-total-usage—- -dsk/total- -net/total- —paging– —system–
usr sys idl wai stl| read writ| recv send| in out | int csw
0 0 100 0 0| 0 0 | 60B 633B| 0 0 | 50 72
0 1 100 0 0| 0 0 | 60B 298B| 0 0 | 48 71
0 0 99 0 0| 0 0 | 60B 314B| 0 0 | 44 68
0 0 100 0 0| 0 0 | 60B 298B| 0 0 | 43 67
1 0 100 0 0| 0 4096B|6575B 4017B| 0 0 | 91 93
2 1 96 0 2| 0 0 | 15M 56k| 0 0 |2374 1091
2 1 98 0 0| 0 0 | 235k 12M| 0 0 |1278 135
2 1 96 0 1| 0 0 | 12M 3564k| 0 0 |2136 994
1 1 97 0 0| 0 0 |3094k 13M| 0 0 |1869 382
5 3 91 0 2| 0 0 | 31M 18M| 0 0 |6414 2595
7 3 87 0 3| 0 0 | 26M 29M| 0 0 |6771 2006
1 0 99 0 0| 0 6144B|4022k 13k| 0 0 | 596 294
3 2 93 0 1| 0 0 | 16M 16M| 0 0 |4203 1323
6 3 87 0 3| 0 0 | 21M 29M| 0 0 |5826 1447
1 1 99 0 1| 0 0 |8528k 28k| 0 0 |1300 716
6 2 92 0 2| 0 0 | 17M 19M| 0 0 |4601 1358
5 3 91 0 3| 0 0 | 21M 26M| 0 0 |5732 1621
7 3 87 0 3| 0 0 | 25M 30M| 0 0 |6634 1800
2 1 97 0 1| 0 0 | 13M 39k| 0 0 |1806 877
5 2 90 0 2| 0 0 | 18M 19M| 0 0 |4897 1470
5 3 92 0 1| 0 0 | 31M 29M| 0 0 |7496 2665
6 3 88 0 3| 0 0 | 28M 28M| 0 0 |6420 2091
0 0 99 0 0| 0 0 | 60B 314B| 0 0 | 48 72
6 2 91 0 3| 0 0 | 19M 15M| 0 0 |4769 1541-以下省略-

・IBM Cloud のコンソールから IBM COS の画面に入ります。
作成済みバケットにAIXからアップロードしたファイルを確認できました。

IBM COSへファイル転送-1

これでファイル転送は完了です。
私の予想は5分以上かかると思っていましたが、予想よりも速かった印象です。

6)IBM COSの使用量確認

IBM COS は Liteプランの範囲で作業したため課金は発生しませんが、IBM Cloud の管理画面から使用量を確認できるので見てみましょう。

・IBM Cloud画面上の「管理」⇒「請求および使用量」をクリックします。

IBM COSへファイル転送-2

・「使用量」を選択し「Cloud Object Storage」をクリックします。
以下の画面の様に各メトリックの使用量を確認できます。ClassA (PUT) は数量233となっており、予想以上に使用していたことがわかりました。
※前述した通りLiteプランのためコストは$0となっています。

IBM COSへファイル転送-3

さいごに

Part1 からご覧頂きありがとうございます。遠回りしながらなんとかファイル転送をすることができました。

実際に作業してみて公開されている手順以外に必要な作業を確認できました。
Part1では、VSIのコンソールを開くためにユーザー権限が必要であることRHELの初期パスワードはレスキューモードで再設定を行わなければいけないこと、Part2では、Proxyサーバソフトウェア設定で nginx やコマンドのインストールが必要なことがわかりました。
構築のご予定がある方はご参考になれば幸いです。

今回 PowerVS から IBM COS へ 1.8GB のファイルを転送しました。
私の予想では5分以上かかると思っていましたが意外にも予想の半分程度の時間で完了しました。Proxyサーバの send/recv値は平均 30MB/s なので、遅すぎる結果ではないと思います。
また、転送時 Proxyサーバの CPU使用割合は少なかったので、沢山のリソースを構成する必要はなさそうです。

今回は PowerVS から Proxyサーバ経由で IBM COS に接続しましたが、Qiita のブログ「オンプレミスやPowerVSからDirect Link 2.0越しにVPE経由でICOSのDirect Endpointにアクセスする」にある通り、VPE経由でもアクセスすることが可能となりましたので今後検証してみたいと思います。

お問い合わせ

この記事に関するご質問は下記までご連絡ください。

エヌアイシー・パートナーズ株式会社
E-Mail:nicp_support@NIandC.co.jp

Contact Us

お客様の業務課題に応じ、最適なソリューションの組み合わせをご提案いたします。
各種お問い合わせや案件のご相談も、こちらより承ります。