こんにちは。
てくさぽ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の設定
・作成したバケットにアクセス・ポリシーを設定します。作成したバケットをクリックします。
・バケット・アクセス・ポリシーの設定画面でユーザをプルダウンして選択し「アクセス・ポリシーの作成」をクリックします。
・アクセス・ポリシーが作成されました。
・左側メニューから「サービス資格情報」を選択し「新規資格情報+」をクリックします。
・「HMAC 資格情報を含める」を「オン」にして「追加」をクリックします。
・サービス資格情報が作成されました。
※AIXの設定で赤枠内のaccess_key_idとsecret_access_keyが必要なのでテキストなどにメモしておきましょう
IBM COSの設定が完了しました。
2)VSIのセキュリティー・グループ設定
IBM COSへの通信はhttps (port443) を使用します。VSIのセキュリティー・グループ設定でインバウンド・ルールにport443の許可を設定をします。
・ナビゲーションメニューから「VPCインフラストラクチャー」「セキュリティー・グループ」を選択、「ルール」タブを選択し、インバウンド・ルールの「作成+」をクリックします。
- 以下の設定で作成します。
- プロトコル:TCP
- ポート最小値:443
- ポート最大値:443
- ソースタイプ:CIDRブロック
- IPの範囲:192.168.1.0/24 (PowerVSのセグメント)
・インバウンド・ルールにport443許可の設定ができました。
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 |
・nginxのプロセス起動を確認します。
・”/etc/nginx/nginx.conf” が作成されていました。次はnginx.confを編集します。
・その前にファイルのバックアップを行います。
・viコマンドでnginx.confファイル内のhttp { } の中に下記を追加します。
proxy_passはIBM Cloud資料「Endpoints and storage locations」記載の IBM COS の Direct Endpoint を指定します。
vi /etc/nginx/nginx.conf
server { ssl_certificate “/etc/ssl/certs/NGINX-selfsigned.crt”; location / { # Load configuration files for the default server block. error_page 404 /404.html; error_page 500 502 503 504 /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 |
・systemctlコマンドでnginxのサービスを再起動し、ステータスを確認します。
# systemctl restart nginx # systemctl status nginx |
これで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 –configure
Enter new values or accept defaults in brackets with Enter. access key and Secret key are your identifiers for Amazon S3. Leave them empty for using the env variables. Encryption password is used to protect your files from reading When using secure HTTPS protocol all communication with Amazon S3 On some networks all internet access must go through a HTTP proxy. New settings: Test access with supplied credentials? [Y/n] n <nを入力 Save settings? [y/N] y <yを入力 |
・ホームディレクトリの下に .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.gzupload: ‘/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からアップロードしたファイルを確認できました。
これでファイル転送は完了です。
私の予想は5分以上かかると思っていましたが、予想よりも速かった印象です。
6)IBM COSの使用量確認
IBM COS は Liteプランの範囲で作業したため課金は発生しませんが、IBM Cloud の管理画面から使用量を確認できるので見てみましょう。
・IBM Cloud画面上の「管理」⇒「請求および使用量」をクリックします。
・「使用量」を選択し「Cloud Object Storage」をクリックします。
以下の画面の様に各メトリックの使用量を確認できます。ClassA (PUT) は数量233となっており、予想以上に使用していたことがわかりました。
※前述した通りLiteプランのためコストは$0となっています。
さいごに
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