特集・ブログ

全て

2021年06月18日

“増えて消せない”データのために描く、企業規模のストレージ戦略

日本企業が未来のために進むべき道の1つとして、DXがあります。 ただしその一方で、こうした業務のデジタライゼーションがデータ爆発を加速させていることも確かです。 重要な資産であるデータを格納するストレージは容量がひっ迫しがちになり、パフォーマンスの劣化やその回避策に苦慮している企業は多いことでしょう。データが増えるとバックアップ運用の難易度も上がります。 また、ストレージは業務システムごとに部分最適で導入される傾向があり、管理工数という点でもコストという点でも負荷の高さが課題でした。本格的な DR対策も長年の懸案事項です。 加えて、企業の収益向上に資するデータ分析や AI活用も求められています。 スピード経営を実現するためにコンテナ技術を取り入れたい、と構想する企業も増えてきました。 本記事では、まだまだストレージの機能を使いこなせていないというエンドユーザー企業の悩みに応えるために、企業情報システムのストレージ戦略の中核テクノロジーとして活躍する「IBM Spectrum Scale」をご紹介します。   Index ストレージ課題で悩む企業への解決策は、IBM Spectrum Scale 短期間で構築可能なアプライアンス:IBM Elastic Storage System こんなシチュエーションで活かせます ビジネス機会を逃していませんか?NI+C Pなら提案・サポートできます この記事に関するお問い合わせ 関連情報   ストレージ課題で悩む企業への解決策は、IBM Spectrum Scale IBM Spectrum Scale は、企業情報システムのデータ戦略の中核に位置付けるにふさわしいスケールアウト型のストレージ・ソフトウェアであり、エンタープライズ・データ・サービスです。 これによって様々なストレージ課題を解決できます。 その構成は、クライアントに対する窓口の役目を果たし、NFS/SMB/オブジェクトプロトコルに対応するプロトコルノードと、共有ディスク・アクセスを直接行うNSDサーバーからなります。 また、ストレージはそのバックエンドのストレージプールにおいて共用可能な状態で提供されます。 図1. IBM Spectrum Scale は、多様なデータのハブとなるエンタープライズ・データ・サービス プロトコルノードと NSDサーバーは、利用形態に合わせて柔軟に増減できます。 ストレージ上のファイルにアクセスするクライアントが増えるのならプロトコルノードを増やす、データ量が増えたなら NSDサーバーを増設するといった具合に、どんどんスケールアウトしていくことが可能です。 あらためて IBM Spectrum Scale の特長を紹介すると、次のようになります。   1. バックアップ効率化やDR対策として活用できる拠点間連携機能 IBM Spectrum Scale には Active File Management (以下、AFM) と呼ばれる機能があり、複数拠点間で非同期コピーを自動で実現します。データがすべてを選択することも可能で、一部に絞ることもできます。 また、キャッシュはリードオンリー、リード/ライト、DR など、様々なモードが選択可能です。   2.担当者を手作業管理から解放するデータ階層化機能 これは、データの自動振分け機能です。 IBM Spectrum Scale は、フラッシュ、SSD、SAS、SATA、 NL-SAS といった異なった種類のストレージを混在させてファイルシステムを構成することができます。 そのため、高頻度にアクセスされるデータは高速ストレージに、アクセス頻度の低いデータは低速ストレージに、といったデータの適材適所の保存を苦もなく実現。ストレージのみならず、テープやクラウドとも自動連携可能 (テープとの連携は別途ソフトウェアが必要) です。 ユーザーは、どのストレージプール上にファイルがあるか を意識する必要がなく、データが移動しても同じ操作でアクセスが可能です。これによって、ストレージ担当者はデータ保管先を管理する作業から完全に解放されます。   3.高い拡張性とパフォーマンス 拡張性・パフォーマンスに優れたファイルシステムです。 プロトコルノードは最大16,384ノードまで拡張可能。格納できるファイルの上限数は9千兆個で、最大ファイルシステム・サイズは8 エクサバイト。つまり、800万テラバイトに上ります。 これだけの容量があれば、ほとんどのケースでストレージ容量の上限に悩まされることなく、リニアに拡張性を追求していくことができます。 パフォーマンスという観点でも、ブロックサイズ単位で分散並列I/O が可能な一方で、最大16MiBの大容量ファイルにも対応。2.5テラバイト/secという高いスループットもすでに実証されており、高速処理が求められるシステムに適用可能です。   4.多様なプロトコル対応で全体最適のデータ戦略を後押し プロトコルノードの追加により、Windows環境の CIFS、SMB、UNIX環境の NFS、オブジェクトの HTTPS、Hadoop の HDFS など、様々なプロトコルでのファイルアクセスが可能です。 そのため、異なるプロトコルが混在する企業情報システムであってもそれぞれを "サイロ化" させず、部分最適ではなく全体最適の観点でストレージ活用が可能になります。   5.ビジネススピードを加速させるOpenStack対応 KVMホストに Spectrum Scale Client をインストールすることで、IBM Spectrum Scale は OpenStack のバックエンドストレージとしても活用できます。 Copy on Write機能により、インスタンス/ボリューム の高速な作成や容量の効率的な使用が可能。複数ホストでファイルシステムを共有できるため、Live Migration を行いたいなどというときも、データのコピーを行うことなく短時間で切り替えられます。   6.分析結果をよりスピーディーに活用できるHDFS対応 Hadoop はオープンソースで大量のテキストデータを分散処理によって高速に処理可能な主要技術ですが、分析対象となるデータを配置するファイルシステム HDFS はそのままではデータの格納庫として利用できません。 分析結果の利用先システムが分析対象データの発生元システムのデータを利用するにはデータコピー作業が必要になり、ストレージを別に用意しなければなりません。 しかし IBM Spectrum Scale なら、分析対象データの発生元システムが Hadoop で利用する IBM Spectrum Scale 上のディレクトリにデータを直接書き込みさえすれば、分析結果の利用先システムはデータを直接読むことができます。 これは、分析結果をそれだけ早く現場で活用できることを意味し、DX推進につながります。   短期間で構築可能なアプライアンス: IBM Elastic Storage System IBM Spectrum Scale は Software Defined Storage であるため、プロトコルノードや NDSサーバーを自由に選択したり、既存のサーバーを有効活用できる、という利便性があります。 その稼働環境も、IBM AIX®、Red Hat Linux、SUSE Linux Enterprise Server、Microsoft Windows Server、Microsoft Windows、IBM z Systems™と幅広いため、企業のシステム環境に合わせて選択できる自由があります。 しかし、エンドユーザーであるお客様によってはそれがかえって面倒と感じられるかもしれません。 その場合は、アプライアンスとして提供される IBM Elastic Storage System がお勧めです。 幅広いラインナップがそろっており、ハードウェア構築、ソフトウェア導入およびテストを工場で事前に実施。お客様サイトには、ラックにマウント可能な状態で搬入できます。 お客様は当初から利用に専念でき、保守およびサポート窓口が一本化されるため、自ら障害切り分けに動く必要もありません。   こんなシチュエーションで活かせます Case 1. バックアップ運用の効率化に AFM機能を利用します。 全拠点の全ファイルを、本社データ・センターで集中管理します。IT担当者のいない遠隔地拠点では、バックアップ運用は行わず本社データ・センター側でまとめて実施します。遠隔地拠点では、よく使うファイルだけがキャッシュされるようにします。 拠点内であるため、高速なアクセスが実現します。 図2. AFM機能を利用した本社・遠隔地拠点間連携   Case 2. AI分析基盤として IBM Spectrum Scale は、データ蓄積のために求められるストレージ要件を満たしています。 それは、「多様なシステムと連携可能なプロトコル対応」「分散したデータを集約する遠隔地連携機能」「高いコストパフォーマンス」です。また、データ分析のために求められるストレージ要件にも合致しています。 それらは、「処理性能に合わせた分散処理機能とスケーラビリティ」「高い性能を引き出すオールフラッシュ・ストレージとの連携機能」「ハイブリッド・クラウド環境でのデータ連携機能」で、これらの点から、深層学習の基盤などとしても最適の環境です。   Case 3. アーカイブ自動化で ストレージプールを、ゴールド、シルバー、ブロンズと階層化します。 階層化に使用できるファイル属性には「最後にファイルアクセスがあった日時」「最後にファイル修正があった日時」「ファイルセット名」「ファイル名 / ファイル拡張子名」「ファイルサイズ」「ユーザーID / グループID」「ファイルアクセス頻度(ファイルヒート)」があり、これらに基づいてポリシーを策定。 Gold にあるデータがポリシーの閾値を超えたらシルバーに移動、またそこで閾値を超えたらブロンズに移動させます。そして、ブロンズで365日間アクセスがなかった場合はファイルシステムから削除。逆に、2日未満の間隔でアクセスがあったらシルバーに移動、などといった具合に、アーカイブ自動化により絶え間ないデータ循環が実現します。   Case 4. 増え続ける大容量データへの対応に 生命科学研究の最前線ではゲノム解析が進んでおり、そこでは膨大なデータが発生します。 10人分の全ゲノムで1テラバイトボリュームのデータになるといい、さらに解析を付加することでデータ容量はますます膨らんでいきます。 こうした指数関数的なデータ増加に対しても、800万ペタバイトまで拡張可能な IBM Spectrum Scale であれば、余裕を持ってシステム構築を行えます。   ビジネス機会を逃していませんか? NI+C Pなら提案・サポートできます エヌアイシー・パートナーズ (NI+C P) は、1990年代に IBM Spectrum Scale の前身である GPFS が登場したときから、進化を長く見守ってきました。そのため、この技術については深く熟知しているという自信があります。 提案先のストレージ担当者が何か課題を抱えておられるようなら、ぜひ、その情報を共有してください。ともに解決策を模索しましょう。 ひょっとすると、IBM Spectrum Scale はソフトウェア製品であるために全体像がつかみにくいかもしれません。そのような場合には、弊社の検証環境設備で実際に製品の動作を見ながらご相談にのることも可能です。 データを企業資産ととらえ、全社ストレージ戦略を立案したい情報システム部門と、それを支えたいパートナーの皆様のお力になれると思います。お気軽にお声がけください。     この記事に関するお問い合わせ エヌアイシー・パートナーズ株式会社 企画本部 事業企画部 この記事に関するお問い合せは以下のボタンよりお願いいたします。 お問い合わせ   関連情報 データ爆発時代が生んだ、“手間レス”オールフラッシュストレージ (コラム) - オンプレミス・ストレージとクラウド・ストレージ、適材適所で使い分けるには… 「壊れにくく、処理速度が落ちない」IBM FlashSystem の特長とラインナップを徹底解説 (コラム) - レイテンシ―が低く高速であることが最大の利点。加えて、データ圧縮などによるストレージ基盤の効率化やマルチベンダー・マルチクラウドへの対応など…   .btn_B{ height:25px; } .btn_B a{ display:block; width:100%; height:100%; text-decoration: none; background:#eb6100; text-align:center; border:1px solid #FFFFFF; color:#FFFFFF; font-size:16px; border-radius:50px; -webkit-border-radius:50px; -moz-border-radius:50px; box-shadow:0px 0px 0px 4px #eb6100; transition: all 0.5s ease; } .btn_B a:hover{ background:#f56500; color:#999999; margin-left:0px; margin-top:0px; box-shadow:0px 0px 0px 4px #f56500; } .bigger { font-size: larger; }  

2021年06月16日

厳しくなる個人情報保護法への対応は大丈夫?クラウドシフトでデータセキュリティ対策の必要性が高まる理由とは

多くの企業はこれまでも様々なセキュリティ製品を導入し、対策に注力してきました。それにもかかわらず、セキュリティ事故が増え続けています。 (さらに…)

2021年06月08日

【てくさぽBLOG】WebSphere Hybrid Editionを導入してみた Vol.1 -OpenShift導入編(手順詳細)-

1.本記事について 本記事は「WebSphere Hybrid Editionを導入してみた Vol.1(OpenShift導入編)」のコマンドの詳細を掲載したものです。 本編をご覧頂きながら、詳しいコマンドや実行結果を本記事でご確認ください。 2. 事前準備 2-1. 作業用Linux環境準備 (1)作業用ディレクトリ作成 (2)Azure CLIインストール インストール→パスを確認→バージョン確認を実行します。 $ curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash $ which az /usr/bin/az $ az version {  "azure-cli": "2.18.0",  "azure-cli-core": "2.18.0",  "azure-cli-telemetry": "1.0.6",  "extensions": {} } (3)jqパッケージインストール yumコマンドでjqパッケージをインストールします。 $ yum -y install epel-release $ yum -y install jq $ $ which jq /usr/bin/jq (4)cloudctlインストール ダウンロード→解凍→パスが通った場所に配置します。 $ curl -L https://github.com/IBM/cloud-pak-cli/releases/latest/download/cloudctl-linux-amd64.tar.gz -o cloudctl-linux-amd64.tar.gz % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 160 100 160 0 0 446 0 --:--:-- --:--:-- --:--:-- 446 100 635 100 635 0 0 992 0 --:--:-- --:--:-- --:--:-- 992 100 12.4M 100 12.4M 0 0 4699k 0 0:00:02 0:00:02 --:--:-- 7554k$ tar xvf ./cloudctl-linux-amd64.tar.gz cloudctl-linux-amd64$ sudo mv ./cloudctl-linux-amd64 /usr/local/bin/cloudctl $ which cloudctl /usr/local/bin/cloudctl (5)ocコマンドのインストール $ tar xvf ./oc-4.5.31-linux.tar.gz README.md oc kubectl$ sudo mv ./oc /usr/local/bin/oc$ which oc /usr/local/bin/oc 2-2. ファイルの準備 (1)OCP4.5インストールファイルのダウンロード /home/user01/os45フォルダにダウンロードし、インストールファイルを解凍します。 $ tar xvf openshift-install-linux-4.5.31.tar.gz README.md openshift-install (2)Pull Secretファイル 2-3. パブリックDNSゾーン設定 (1)リソースグループを作成 (2)App Serviceドメインを作成 2-4. サービスプリンシパルの作成 (1)Azureへのログイン(az login) $ az login The default web browser has been opened at https://login.microsoftonline.com/common/oauth2/authorize. Please continue the login in the web browser. If no web browser is available or if the web browser fails to open, use device code flow with `az login --use-device-code`. WebブラウザでのAzure認証画面でログインします。 (2)アクティブなアカウントの詳細を表示して「tenantId」「id」を確認 $ az account list --refresh [  {   "cloudName": "AzureCloud",   "homeTenantId": "<tenantId>",   "id": "<ID>",   "isDefault": true,   "managedByTenants": [],   "name": "<サブスクリプション名>",   "state": "Enabled",   "tenantId": "<tenantId>",   "user": {   "name": "admin@xxx.onmicrosoft.com", "type": "user" }  } ] (3)アカウントのサービスプリンシパルを作成し「appId」「password」を確認 $ az ad sp create-for-rbac --role Contributor --name ocp_sp Changing "ocp_sp" to a valid URI of "http://ocp_sp", which is the required format used for service principal names Creating 'Contributor' role assignment under scope '/subscriptions/<id>' Retrying role assignment creation: 1/36 The output includes credentials that you must protect. Be sure that you do not include these credentials in your code or check the credentials into your source control. For more information, see https://aka.ms/azadsp-cli { "appId": "<appId>", "displayName": "ocp_sp", "name": "http://ocp_sp", "password": "<password>", "tenant": "<tenantID>" } (4)サービスプリンシパルに追加パーミッションを付与 (4-1)User Access Administrator ロールを割り当て メモしておいた<appId>をパラメータに利用します。 $ az role assignment create --role "User Access Administrator" --assignee-object-id $(az ad sp list --filter "appId eq '<appId>' " | jq '.[0].objectId' -r) { "canDelegate": null, "condition": null, "conditionVersion": null, "description": null, "id": "/subscriptions/<id>/providers/Microsoft.Authorization/roleAssignments/c02d16cf-c875-4228-99a7-ecfc77d23ff2", "name": "c02d16cf-c875-4228-99a7-ecfc77d23ff2", "principalId": "f56550e6-c2f3-47d1-9e82-be0be7674f9f", "principalType": "ServicePrincipal", "roleDefinitionId": "/subscriptions/<id>/providers/Microsoft.Authorization/roleDefinitions/18d7d88d-d35e-4fb5-a5c3-7773c20a72d9", "scope": "/subscriptions/<id>", "type": "Microsoft.Authorization/roleAssignments" } (4-2)Azure Active Directory Graph パーミッションを割り当て $ az ad app permission add --id <appId> --api 00000002-0000-0000-c000-000000000000 --api-permissions 824c81eb-e3f8-4ee6-8f6d-de7f50d565b7=Role Invoking "az ad app permission grant --id <appId>--api 00000002-0000-0000-c000-000000000000" is needed to make the change effective (5)パーミッション要求を承認 $ az ad app permission grant --id <appId> --api 00000002-0000-0000-c000-000000000000 { "clientId": "f56550e6-c2f3-47d1-9e82-be0be7674f9f", "consentType": "AllPrincipals", "expiryTime": "2022-02-24T05:15:17.649474", "objectId": "5lBl9fPC0Ueegr4L52dPnzVAb4VRJ4FHiVNygLqyh7c", "odata.metadata": "https://graph.windows.net/<tenantId>/$metadata#oauth2PermissionGrants/@Element", "odatatype": null, "principalId": null, "resourceId": "856f4035-2751-4781-8953-7280bab287b7", "scope": "user_impersonation", "startTime": "2021-02-24T05:15:17.649474" } 3.OpenShift 導入 3-1. SSH秘密鍵の作成 (1)作業用Linuxマシン上でssh-keygenコマンドを実行しSSHキーを作成 $ ssh-keygen -t rsa -b 4096 -N '' -f ~/.ssh/id_rsa2 Generating public/private rsa key pair. Your identification has been saved in /home/user01/.ssh/id_rsa2. Your public key has been saved in /home/user01/.ssh/id_rsa2.pub. The key fingerprint is: SHA256:kKB23rSxmb6ZjQA9eMaLYoXWxsounLQ160TxrOpf2VY user01@A2470 The key's randomart image is: +---[RSA 4096]----+ | . | | . . . | | o.. = | | .+*+o B | | oo*Bo* SE | |o.=B.+o . | |++=o=o.o | |+=o....* | |o+oo = . | +----[SHA256]-----+ (2)ssh-agent プロセスをバックグラウンドタスクとして開始 $ eval "$(ssh-agent -s)" Agent pid 3306 (3)SSH プライベートキーを ssh-agent に追加 $ ssh-add ~/.ssh/id_rsa2 Identity added: /home/user01/.ssh/id_rsa2 (/home/user01/.ssh/id_rsa2) 3-2. インストールファイルの作成 (1)install-config.yaml ファイル生成 $ cd /home/user01/os45 $ ./openshift-install create install-config --dir=/home/user01/os45 ? SSH Public Key /home/user01/.ssh/id_rsa2.pub ← プロンプトで入力 ? Platform azure ← プロンプトで入力 ? azure subscription id <id> ← プロンプトで入力 ? azure tenant id <tenantId> ← プロンプトで入力 ? azure service principal client id <appId> ← プロンプトで入力 ? azure service principal client secret [? for help] ******<password>******* ← プロンプトで入力 INFO Saving user credentials to "/home/user01/.azure/osServicePrincipal.json" INFO Credentials loaded from file "/home/user01/.azure/osServicePrincipal.json" ? Region japaneast ← プロンプトで入力 ? Base Domain ← プロンプトで入力 ? Cluster Name nicpwhecluster ← プロンプトで入力 ? Pull Secret [? for help] ← 事前にダウンロードしたPull Secretを貼り付け ******************************************************************************************** ※特に完了のメッセージは表示されません (2)ARM テンプレートの一般的な変数のエクスポート $ export CLUSTER_NAME=nicpwhecluster $ export AZURE_REGION=japaneast $ export SSH_KEY=""ssh-rsa AAAAB3Nza<以下、省略>"" $ export BASE_DOMAIN= $ export BASE_DOMAIN_RESOURCE_GROUP=ocp-cluster $ export KUBECONFIG=/home/user01/os45/auth/kubeconfig (3)クラスターの Kubernetes マニフェストを生成 $ ./openshift-install create manifests --dir=/home/user01/os45/ "INFO Credentials loaded from file ""/home/user01/.azure/osServicePrincipal.json"" INFO Consuming Install Config from target directory" (4)コントロールプレーン、ワーカーノードを定義する Kubernetes マニフェストファイルを削除 $ rm -f /home/user01/os45/openshift/99_openshift-cluster-api_master-machines-*.yaml $ rm -f /home/user01/os45/openshift/99_openshift-cluster-api_worker-machineset-*.yaml ※これらのファイルを削除することで、クラスターが自動的に生成するのを防ぎます。 (5)Kubernetes マニフェストファイルを変更 /home/user01/os45/manifests/cluster-scheduler-02-config.yml を変更し、Pod がコントロールプレーンにスケジュールされないようにします。 manifests/cluster-scheduler-02-config.yml ファイルをエディタで開き、"mastersSchedulable"パラメーターの値を False に設定し、保存、終了します。 (6)変数のエクスポート $ export INFRA_ID=nicpwhecluster-h8lq5 $ export RESOURCE_GROUP=nicpwhecluster-h8lq5-rg (7)Ignition 設定ファイルを取得 $ ./openshift-install create ignition-configs --dir=/home/user01/os45/ INFO Consuming OpenShift Install (Manifests) from target directory INFO Consuming Openshift Manifests from target directory INFO Consuming Common Manifests from target directory INFO Consuming Master Machines from target directory INFO Consuming Worker Machines from target directory (8)ファイルの確認 os45に生成された"bootstrap.ign"ファイル、”master.ign"ファイル、"metadata.json"ファイル、"worker.ign"ファイルがあることを確認します。 $ ls -al /home/user01/os45 total 91924 drwxrwxr-x 1 user01 user01 4096 Feb 24 15:10 . drwxr-xr-x 1 user01 user01 4096 Feb 24 15:09 .. -rw-rw-r-- 1 user01 user01 77773 Feb 24 15:10 .openshift_install.log -rw-r----- 1 user01 user01 1274855 Feb 24 15:10 .openshift_install_state.json drwxr-x--- 1 user01 user01 4096 Feb 24 15:10 auth -rw-r----- 1 user01 user01 302438 Feb 24 15:10 bootstrap.ign drwxrwxr-x 1 user01 user01 4096 Feb 24 09:52 conf -rw-r----- 1 user01 user01 4346 Feb 24 14:47 install-config.yaml.org -rw-r----- 1 user01 user01 1847 Feb 24 15:10 master.ign -rw-r----- 1 user01 user01 147 Feb 24 15:10 metadata.json -rw-r--r-- 1 user01 user01 92429691 Feb 12 16:46 openshift-install-linux-4.5.31.tar.gz -rw-r--r-- 1 user01 user01 2779 Feb 12 15:37 pull-secret.txt -rw-r--r-- 1 user01 user01 50 Feb 12 15:37 pull-secret.txt:Zone.Identifier -rw-r----- 1 user01 user01 1847 Feb 24 15:10 worker.ign 同様に/home/user01/os45/auth内に"kubeadmin-password"と"kubeconfig"があることを確認 user01@A2470:~$ ls -al /home/user01/os45/auth/ total 12 drwxr-x--- 1 user01 user01 4096 Feb 24 15:10 . drwxrwxr-x 1 user01 user01 4096 Feb 24 15:10 .. -rw-r----- 1 user01 user01 23 Feb 24 15:10 kubeadmin-password -rw-r----- 1 user01 user01 8992 Feb 24 15:10 kubeconfig 3-3. Azure リソースグループおよびアイデンティティーの作成 (1)リソースグループを作成 $ az group create --name ${RESOURCE_GROUP} --location ${AZURE_REGION} { "id": "/subscriptions/<id>/resourceGroups/nicpwhecluster-h8lq5-rg", "location": "japaneast", "managedBy": null, "name": "nicpwhecluster-h8lq5-rg", "properties": { "provisioningState": "Succeeded" }, "tags": null, "type": "Microsoft.Resources/resourceGroups" } (2)リソースグループの Azure アイデンティティーを作成 $ az identity create -g ${RESOURCE_GROUP} -n ${INFRA_ID}-identity { "clientId": "487b4852-018d-4289-94f7-24db4bef3811", "clientSecretUrl": "https://control-japaneast.identity.azure.net/subscriptions/<id>/resourcegroups/nicpwhecluster-h8lq5-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/nicpwhecluster-h8lq5-identity/credentials?tid=<tenantId>&oid=f0273f5e-4c1b-4cf4-b3ac-14ad28344d17&aid=487b4852-018d-4289-94f7-24db4bef3811", "id": "/subscriptions/<id>/resourcegroups/nicpwhecluster-h8lq5-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/nicpwhecluster-h8lq5-identity", "location": "japaneast", "name": "nicpwhecluster-h8lq5-identity", "principalId": "f0273f5e-4c1b-4cf4-b3ac-14ad28344d17", "resourceGroup": "nicpwhecluster-h8lq5-rg", "tags": {}, "tenantId": "<tenantID>", "type": "Microsoft.ManagedIdentity/userAssignedIdentities" } (3)Contributor ロールを Azure アイデンティティーに付与 (3-1)ロール割当に必要な変数をエクスポート $ export PRINCIPAL_ID=`az identity show -g ${RESOURCE_GROUP} -n ${INFRA_ID}-identity --query principalId --out tsv` $ export RESOURCE_GROUP_ID=`az group show -g ${RESOURCE_GROUP} --query id --out tsv` (3-2)Contributor ロールをアイデンティティーに割り当て $ az role assignment create --assignee "${PRINCIPAL_ID}" --role 'Contributor' --scope "${RESOURCE_GROUP_ID}" { "canDelegate": null, "condition": null, "conditionVersion": null, "description": null, "id": "/subscriptions/<id>/resourceGroups/nicpwhecluster-h8lq5-rg/providers/Microsoft.Authorization/roleAssignments/0b0302ab-9ca5-4b85-a2f3-a0f7c7cded77", "name": "0b0302ab-9ca5-4b85-a2f3-a0f7c7cded77", "principalId": "f0273f5e-4c1b-4cf4-b3ac-14ad28344d17", "principalType": "ServicePrincipal", "resourceGroup": "nicpwhecluster-h8lq5-rg", "roleDefinitionId": "/subscriptions/<id>/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c", "scope": "/subscriptions/<id>/resourceGroups/nicpwhecluster-h8lq5-rg", "type": "Microsoft.Authorization/roleAssignments" } 3-4. RHCOS クラスターイメージおよびブートストラップ Ignition 設定ファイルのアップロード (1)Azureストレージアカウントの作成 $ az storage account create -g ${RESOURCE_GROUP} --location ${AZURE_REGION} --name ${CLUSTER_NAME}sa --kind Storage --sku Standard_LRS Resource provider 'Microsoft.Storage' used by this operation is not registered. We are registering for you. Registration succeeded. {- Finished .. "accessTier": null, "allowBlobPublicAccess": null, "azureFilesIdentityBasedAuthentication": null, "blobRestoreStatus": null, "creationTime": "2021-02-24T06:16:35.567172+00:00", "customDomain": null, "enableHttpsTrafficOnly": true, "encryption": { "keySource": "Microsoft.Storage", "keyVaultProperties": null, "requireInfrastructureEncryption": null, "services": { "blob": { "enabled": true, "keyType": "Account", "lastEnabledTime": "2021-02-24T06:16:35.629673+00:00" }, "file": { "enabled": true, "keyType": "Account", "lastEnabledTime": "2021-02-24T06:16:35.629673+00:00" }, "queue": null, "table": null } }, "failoverInProgress": null, "geoReplicationStats": null, "id": "/subscriptions/<id>/resourceGroups/nicpwhecluster-h8lq5-rg/providers/Microsoft.Storage/storageAccounts/nicpwheclustersa", "identity": null, "isHnsEnabled": null, "isHnsEnabled": null, "kind": "Storage", "largeFileSharesState": null, "lastGeoFailoverTime": null, "location": "japaneast", "minimumTlsVersion": null, "name": "nicpwheclustersa", "networkRuleSet": { "bypass": "AzureServices", "defaultAction": "Allow", "ipRules": [], "virtualNetworkRules": [] }, "primaryEndpoints": { "blob": "https://nicpwheclustersa.blob.core.windows.net/", "dfs": null, "file": "https://nicpwheclustersa.file.core.windows.net/", "internetEndpoints": null, "microsoftEndpoints": null, "queue": "https://nicpwheclustersa.queue.core.windows.net/", "table": "https://nicpwheclustersa.table.core.windows.net/", "web": null }, "primaryLocation": "japaneast", "privateEndpointConnections": [], "provisioningState": "Succeeded", "resourceGroup": "nicpwhecluster-h8lq5-rg", "routingPreference": null, "secondaryEndpoints": null, "secondaryLocation": null, "sku": { "name": "Standard_LRS", "tier": "Standard" }, "statusOfPrimary": "available", "statusOfSecondary": null, "tags": {}, "type": "Microsoft.Storage/storageAccounts" } (2)ストレージアカウントキーを環境変数としてエクスポート $ export ACCOUNT_KEY=`az storage account keys list -g ${RESOURCE_GROUP} --account-name ${CLUSTER_NAME}sa --query "[0].value" -o tsv` (3)VHD の URL を環境変数にエクスポート 今回はOCP4.5で構築するのでrelease-4.5ディレクトリを指定します。 $ export VHD_URL=`curl -s https://raw.githubusercontent.com/openshift/installer/release-4.5/data/data/rhcos.json | jq -r .azure.url` (4)選択した VHD を blob にコピー $ az storage container create --name vhd --account-name ${CLUSTER_NAME}sa --account-key ${ACCOUNT_KEY} { "created": true } コピーがスタートしたら、コマンドを実行してステータスを確認します。「Success」なったら完了です。 $ az storage blob copy start --account-name ${CLUSTER_NAME}sa --account-key ${ACCOUNT_KEY} --destination-blob "rhcos.vhd" --destination-container vhd --source-uri "${VHD_URL}" { "completionTime": null, "id": "afe1cb0f-9194-40b4-9a6c-d8f25c7b69bd", "progress": null, "source": null, "status": "pending", "statusDescription": null }(状況確認コマンド) $ az storage blob show --container-name vhd --name "rhcos.vhd" --account-name ${CLUSTER_NAME}sa --account-key ${ACCOUNT_KEY} -o tsv --query properties.copy.status success (5)blob ストレージコンテナーを作成します。 $ az storage container create --name files --account-name ${CLUSTER_NAME}sa --account-key ${ACCOUNT_KEY} --public-access blob { "created": true } 続いて、生成されたbootstrap.ignファイルをアップロードします。 $ az storage blob upload --account-name ${CLUSTER_NAME}sa --account-key ${ACCOUNT_KEY} -c "files" -f "/home/user01/os45/bootstrap.ign" -n "bootstrap.ign" { "etag": "00000002-0000-0000-8f3c-b41b770ad701", "id": "/subscriptions/<id>/resourceGroups/ocp-cluster/providers/Microsoft.Network/dnszones/nicpwhecluster.", "location": "global", "maxNumberOfRecordSets": 10000, "name": "nicpwhecluster.", "nameServers": [ "ns1-05.azure-dns.com.", "ns2-05.azure-dns.net.", "ns3-05.azure-dns.org.", "ns4-05.azure-dns.info." ], "numberOfRecordSets": 2, "registrationVirtualNetworks": null, "resolutionVirtualNetworks": null, "resourceGroup": "ocp-cluster", "tags": {}, "type": "Microsoft.Network/dnszones", "zoneType": "Public" } 3-5. DNSゾーンの作成 (1)プライベートDNSゾーンを作成 $ az network dns zone create -g ${BASE_DOMAIN_RESOURCE_GROUP} -n \${CLUSTER_NAME}.${BASE_DOMAIN}  {-Finished .. "etag": "02474d3c-85a2-4a48-8650-e837ea7df63b", "id": "/subscriptions/<id>/resourceGroups/nicpwhecluster-h8lq5-rg/providers/Microsoft.Network/privateDnsZones/nicpwhecluster.", "location": "global", "maxNumberOfRecordSets": 25000, "maxNumberOfVirtualNetworkLinks": 1000, "maxNumberOfVirtualNetworkLinksWithRegistration": 100, "name": "nicpwhecluster.", "numberOfRecordSets": 1, "numberOfVirtualNetworkLinks": 0, "numberOfVirtualNetworkLinksWithRegistration": 0, "provisioningState": "Succeeded", "resourceGroup": "nicpwhecluster-h8lq5-rg", "tags": null, "type": "Microsoft.Network/privateDnsZones" } 3-6. Azure での VNet の作成 (1)デプロイメントを作成 マニュアルページにある「VNet の ARM テンプレート」の内容をコピーして/home/user01/os45ディレクトリに01_vnet.jsonというファイルを作成し、コマンドを実行 $ az deployment group create -g ${RESOURCE_GROUP} --template-file "/home/user01/os45/01_vnet.json" --parameters baseName="${INFRA_ID}" {- Finished .. "id": "/subscriptions/<id>/resourceGroups/nicpwhecluster-h8lq5-rg/providers/Microsoft.Resources/deployments/01_vnet", "location": null, "name": "01_vnet", "properties": { "correlationId": "0a44ba18-b094-41b1-9be5-16ae14c50593", "debugSetting": null, "dependencies": [ { "dependsOn": [ { "id": "/subscriptions/<id>/resourceGroups/nicpwhecluster-h8lq5-rg/providers/Microsoft.Network/networkSecurityGroups/nicpwhecluster-h8lq5-nsg", "resourceGroup": "nicpwhecluster-h8lq5-rg", "resourceName": "nicpwhecluster-h8lq5-nsg", "resourceType": "Microsoft.Network/networkSecurityGroups" } ], "id": "/subscriptions/<id>/resourceGroups/nicpwhecluster-h8lq5-rg/providers/Microsoft.Network/virtualNetworks/nicpwhecluster-h8lq5-vnet", "resourceGroup": "nicpwhecluster-h8lq5-rg", "resourceName": "nicpwhecluster-h8lq5-vnet", "resourceType": "Microsoft.Network/virtualNetworks" } ], "duration": "PT9.5604786S", "error": null, "mode": "Incremental", "onErrorDeployment": null, "outputResources": [ { "id": "/subscriptions/<id>/resourceGroups/nicpwhecluster-h8lq5-rg/providers/Microsoft.Network/networkSecurityGroups/nicpwhecluster-h8lq5-nsg", "resourceGroup": "nicpwhecluster-h8lq5-rg" }, { "id": "/subscriptions/<id>/resourceGroups/nicpwhecluster-h8lq5-rg/providers/Microsoft.Network/virtualNetworks/nicpwhecluster-h8lq5-vnet", "resourceGroup": "nicpwhecluster-h8lq5-rg" } ], "outputs": null, "parameters": { "baseName": { "type": "String", "value": "nicpwhecluster-h8lq5" } }, "parametersLink": null, "providers": [ { "id": null, "namespace": "Microsoft.Network", "registrationPolicy": null, "registrationState": null, "resourceTypes": [ { "aliases": null, "apiProfiles": null, "apiVersions": null, "capabilities": null, "defaultApiVersion": null, "locationMappings": null, "locations": [ "japaneast" ], "properties": null, "resourceType": "virtualNetworks" }, { "aliases": null, "apiProfiles": null, "apiVersions": null, "capabilities": null, "defaultApiVersion": null, "locationMappings": null, "locations": [ "japaneast" ], "properties": null, "resourceType": "networkSecurityGroups" } ] } ], "provisioningState": "Succeeded", "templateHash": "16546001156426103307", "templateLink": null, "timestamp": "2021-02-24T06:39:35.707206+00:00", "validatedResources": null }, "resourceGroup": "nicpwhecluster-h8lq5-rg", "tags": null, "type": "Microsoft.Resources/deployments" } (2)VNet テンプレートをプライベート DNS ゾーンにリンク $ az network private-dns link vnet create -g ${RESOURCE_GROUP} -z ${CLUSTER_NAME}.${BASE_DOMAIN} -n ${INFRA_ID}-network-link -v "${INFRA_ID}-vnet" -e false {- Finished .. "etag": "\"7e02aec1-0000-0100-0000-6035f4fb0000\"", "id": "/subscriptions/<id>/resourceGroups/nicpwhecluster-h8lq5-rg/providers/Microsoft.Network/privateDnsZones/nicpwhecluster./virtualNetworkLinks/nicpwhecluster-h8lq5-network-link", "location": "global", "name": "nicpwhecluster-h8lq5-network-link", "provisioningState": "Succeeded", "registrationEnabled": false, "resourceGroup": "nicpwhecluster-h8lq5-rg", "tags": null, "type": "Microsoft.Network/privateDnsZones/virtualNetworkLinks", "virtualNetwork": { "id": "/subscriptions/<id>/resourceGroups/nicpwhecluster-h8lq5-rg/providers/Microsoft.Network/virtualNetworks/nicpwhecluster-h8lq5-vnet", "resourceGroup": "nicpwhecluster-h8lq5-rg" }, "virtualNetworkLinkState": "Completed" } 3-7. RHCOS クラスターイメージのデプロイ (1)RHCOS VHD blob URL を変数としてエクスポート $ export VHD_BLOB_URL=`az storage blob url --account-name ${CLUSTER_NAME}sa --account-key ${ACCOUNT_KEY} -c vhd -n "rhcos.vhd" -o tsv` (2)クラスターイメージのデプロイ マニュアルページにある「イメージストレージの ARM テンプレート」の内容をコピーして/home/user01/os45ディレクトリに02_storage.jsonというファイルを作成し、コマンドを実行します。 $ az deployment group create -g ${RESOURCE_GROUP} --template-file "/home/user01/os45/02_storage.json" --parameters vhdBlobURL="${VHD_BLOB_URL}" --parameters baseName="${INFRA_ID}" - Finished .. {- Finished .. "id": "/subscriptions/<id>/resourceGroups/nicpwhecluster-h8lq5-rg/providers/Microsoft.Resources/deployments/02_storage", "location": null, "name": "02_storage", "properties": { "correlationId": "0d04f61c-907e-4ccb-b364-a5c50c0e9ae7", "debugSetting": null, "dependencies": [], "duration": "PT13.9015046S", "error": null, "mode": "Incremental", "onErrorDeployment": null, "outputResources": [ { "id": "/subscriptions/<id>/resourceGroups/nicpwhecluster-h8lq5-rg/providers/Microsoft.Compute/images/nicpwhecluster-h8lq5-image", "resourceGroup": "nicpwhecluster-h8lq5-rg" } ], "outputs": null, "parameters": { "baseName": { "type": "String", "value": "nicpwhecluster-h8lq5" }, "vhdBlobURL": { "type": "String", "value": "https://nicpwheclustersa.blob.core.windows.net/vhd/rhcos.vhd" } }, "parametersLink": null, "providers": [ { "id": null, "namespace": "Microsoft.Compute", "registrationPolicy": null, "registrationState": null, "resourceTypes": [ { "aliases": null, "apiProfiles": null, "apiVersions": null, "capabilities": null, "defaultApiVersion": null, "locationMappings": null, "locations": [ "japaneast" ], "properties": null, "resourceType": "images" } ] } ], "provisioningState": "Succeeded", "templateHash": "723175588916620424", "templateLink": null, "timestamp": "2021-02-24T06:45:00.292869+00:00", "validatedResources": null }, "resourceGroup": "nicpwhecluster-h8lq5-rg", "tags": null, "type": "Microsoft.Resources/deployments" } 3-8.ネットワークおよび負荷分散コンポーネントの作成 (1)ネットワークオブジェクトおよびロードバランサーのデプロイ マニュアルページにある「ネットワークおよびロードバランサーの ARM テンプレート」の内容をコピーして/home/user01/os45ディレクトリに03_infra.jsonというファイルを作成し、コマンドを実行します。 $ az deployment group create -g ${RESOURCE_GROUP} --template-file "/home/user01/os45/03_infra.json" --parameters privateDNSZoneName="${CLUSTER_NAME}.${BASE_DOMAIN}" --parameters baseName="${INFRA_ID}" {- Finished .. "id": "/subscriptions/<id>/resourceGroups/nicpwhecluster-h8lq5-rg/providers/Microsoft.Resources/deployments/03_infra", "location": null, "name": "03_infra", "properties": { "correlationId": "32467378-c2a4-4e99-b950-9b3ba06ba768", "debugSetting": null, "dependencies": [ { "dependsOn": [ { "id": "/subscriptions/<id>/resourceGroups/nicpwhecluster-h8lq5-rg/providers/Microsoft.Network/publicIPAddresses/nicpwhecluster-h8lq5-master-pip", "resourceGroup": "nicpwhecluster-h8lq5-rg", "resourceName": "nicpwhecluster-h8lq5-master-pip", "resourceType": "Microsoft.Network/publicIPAddresses" } ], "id": "/subscriptions/<id>/resourceGroups/nicpwhecluster-h8lq5-rg/providers/Microsoft.Network/loadBalancers/nicpwhecluster-h8lq5-public-lb", "resourceGroup": "nicpwhecluster-h8lq5-rg", "resourceName": "nicpwhecluster-h8lq5-public-lb", "resourceType": "Microsoft.Network/loadBalancers" }, { "dependsOn": [ { "id": "/subscriptions/<id>/resourceGroups/nicpwhecluster-h8lq5-rg/providers/Microsoft.Network/loadBalancers/nicpwhecluster-h8lq5-internal-lb", "resourceGroup": "nicpwhecluster-h8lq5-rg", "resourceName": "nicpwhecluster-h8lq5-internal-lb", "resourceType": "Microsoft.Network/loadBalancers" } ], "id": "/subscriptions/<id>/resourceGroups/nicpwhecluster-h8lq5-rg/providers/Microsoft.Network/privateDnsZones/nicpwhecluster./A/api", "resourceGroup": "nicpwhecluster-h8lq5-rg", "resourceName": "nicpwhecluster./api", "resourceType": "Microsoft.Network/privateDnsZones/A" }, { "dependsOn": [ { "id": "/subscriptions/<id>/resourceGroups/nicpwhecluster-h8lq5-rg/providers/Microsoft.Network/loadBalancers/nicpwhecluster-h8lq5-internal-lb", "resourceGroup": "nicpwhecluster-h8lq5-rg", "resourceName": "nicpwhecluster-h8lq5-internal-lb", "resourceType": "Microsoft.Network/loadBalancers" } ], "id": "/subscriptions/<id>/resourceGroups/nicpwhecluster-h8lq5-rg/providers/Microsoft.Network/privateDnsZones/nicpwhecluster./A/api-int", "resourceGroup": "nicpwhecluster-h8lq5-rg", "resourceName": "nicpwhecluster./api-int", "resourceType": "Microsoft.Network/privateDnsZones/A" } ], "duration": "PT7.2301651S", "error": null, "mode": "Incremental", "onErrorDeployment": null, "outputResources": [ { "id": "/subscriptions/<id>/resourceGroups/nicpwhecluster-h8lq5-rg/providers/Microsoft.Network/loadBalancers/nicpwhecluster-h8lq5-internal-lb", "resourceGroup": "nicpwhecluster-h8lq5-rg" }, { "id": "/subscriptions/<id>/resourceGroups/nicpwhecluster-h8lq5-rg/providers/Microsoft.Network/loadBalancers/nicpwhecluster-h8lq5-public-lb", "resourceGroup": "nicpwhecluster-h8lq5-rg" }, { "id": "/subscriptions/<id>/resourceGroups/nicpwhecluster-h8lq5-rg/providers/Microsoft.Network/privateDnsZones/nicpwhecluster./A/api", "resourceGroup": "nicpwhecluster-h8lq5-rg" }, { "id": "/subscriptions/<id>/resourceGroups/nicpwhecluster-h8lq5-rg/providers/Microsoft.Network/privateDnsZones/nicpwhecluster./A/api-int", "resourceGroup": "nicpwhecluster-h8lq5-rg" }, { "id": "/subscriptions/<id>/resourceGroups/nicpwhecluster-h8lq5-rg/providers/Microsoft.Network/publicIPAddresses/nicpwhecluster-h8lq5-master-pip", "resourceGroup": "nicpwhecluster-h8lq5-rg" } ], "outputs": null, "parameters": { "baseName": { "type": "String", "value": "nicpwhecluster-h8lq5" }, "privateDNSZoneName": { "type": "String", "value": "nicpwhecluster." } }, "parametersLink": null, "providers": [ { "id": null, "namespace": "Microsoft.Network", "registrationPolicy": null, "registrationState": null, "resourceTypes": [ { "aliases": null, "apiProfiles": null, "apiVersions": null, "capabilities": null, "defaultApiVersion": null, "locationMappings": null, "locations": [ "japaneast" ], "properties": null, "resourceType": "publicIPAddresses" }, { "aliases": null, "apiProfiles": null, "apiVersions": null, "capabilities": null, "defaultApiVersion": null, "locationMappings": null, "locations": [ "japaneast" ], "properties": null, "resourceType": "loadBalancers" }, { "aliases": null, "apiProfiles": null, "apiVersions": null, "capabilities": null, "defaultApiVersion": null, "locationMappings": null, "locations": [ "japaneast" ], "properties": null, "resourceType": "privateDnsZones/A" } ] } ], "provisioningState": "Succeeded", "templateHash": "8527193543920854248", "templateLink": null, "timestamp": "2021-02-24T07:02:29.639760+00:00", "validatedResources": null }, "resourceGroup": "nicpwhecluster-h8lq5-rg", "tags": null, "type": "Microsoft.Resources/deployments" } (2)変数のエクスポートとクラスターを既存のパブリックゾーンに追加 まず変数をエクスポートします。 $ export PUBLIC_IP=`az network public-ip list -g ${RESOURCE_GROUP} --query "[?name=='${INFRA_ID}-master-pip'] | [0].ipAddress" -o tsv` クラスターを既存のパブリックゾーンに追加します。 $ az network dns record-set a add-record -g ${BASE_DOMAIN_RESOURCE_GROUP} -z ${BASE_DOMAIN} -n api.${CLUSTER_NAME} -a ${PUBLIC_IP} --ttl 60 { "arecords": [ { "ipv4Address": "20.78.25.157" } ], "etag": "e1b034dc-580a-460e-8579-d7789e6aa43c", "fqdn": "api.nicpwhecluster..", "id": "/subscriptions/<id>/resourceGroups/ocp-cluster/providers/Microsoft.Network/dnszones//A/api.nicpwhecluster", "metadata": null, "name": "api.nicpwhecluster", "provisioningState": "Succeeded", "resourceGroup": "ocp-cluster", "targetResource": { "id": null }, "ttl": 60, "type": "Microsoft.Network/dnszones/A" } 3-9.ノードの作成 (1)ブートストラップマシンの作成 まず変数をエクスポートします。 $ export BOOTSTRAP_URL=`az storage blob url --account-name ${CLUSTER_NAME}sa --account-key ${ACCOUNT_KEY} -c "files" -n "bootstrap.ign" -o tsv` $ export BOOTSTRAP_IGNITION=`jq -rcnM --arg v "2.2.0" --arg url ${BOOTSTRAP_URL} '{ignition:{version:$v,config:{replace:{source:$url}}}}' | base64 -w0` マニュアルページにある「ブートストラップマシンの ARM テンプレート」の内容をコピーして/home/user01/os45ディレクトリに04_bootstrap.jsonというファイルを作成し、コマンドを実行します。 $ az deployment group create -g ${RESOURCE_GROUP} --template-file "/home/user01/os45/04_bootstrap.json" --parameters bootstrapIgnition="${BOOTSTRAP_IGNITION}" --parameters sshKeyData="${SSH_KEY}" --parameters baseName="${INFRA_ID}" {- Finished .. "id": "/subscriptions/<id>/resourceGroups/nicpwhecluster-h8lq5-rg/providers/Microsoft.Resources/deployments/04_bootstrap", "location": null, "name": "04_bootstrap", "properties": { "correlationId": "6bfb12f9-fade-4ab0-99e2-a6acc50a0e67", "debugSetting": null, "dependencies": [ { "dependsOn": [ { "id": "/subscriptions/<id>/resourceGroups/nicpwhecluster-h8lq5-rg/providers/Microsoft.Network/publicIPAddresses/nicpwhecluster-h8lq5-bootstrap-ssh-pip", "resourceGroup": "nicpwhecluster-h8lq5-rg", "resourceName": "nicpwhecluster-h8lq5-bootstrap-ssh-pip", "resourceType": "Microsoft.Network/publicIPAddresses" } ], "id": "/subscriptions/<id>/resourceGroups/nicpwhecluster-h8lq5-rg/providers/Microsoft.Network/networkInterfaces/nicpwhecluster-h8lq5-bootstrap-nic", "resourceGroup": "nicpwhecluster-h8lq5-rg", "resourceName": "nicpwhecluster-h8lq5-bootstrap-nic", "resourceType": "Microsoft.Network/networkInterfaces" }, { "dependsOn": [ { "id": "/subscriptions/<id>/resourceGroups/nicpwhecluster-h8lq5-rg/providers/Microsoft.Network/networkInterfaces/nicpwhecluster-h8lq5-bootstrap-nic", "resourceGroup": "nicpwhecluster-h8lq5-rg", "resourceName": "nicpwhecluster-h8lq5-bootstrap-nic", "resourceType": "Microsoft.Network/networkInterfaces" } ], "id": "/subscriptions/<id>/resourceGroups/nicpwhecluster-h8lq5-rg/providers/Microsoft.Compute/virtualMachines/nicpwhecluster-h8lq5-bootstrap", "resourceGroup": "nicpwhecluster-h8lq5-rg", "resourceName": "nicpwhecluster-h8lq5-bootstrap", "resourceType": "Microsoft.Compute/virtualMachines" }, { "dependsOn": [ { "id": "/subscriptions/<id>/resourceGroups/nicpwhecluster-h8lq5-rg/providers/Microsoft.Compute/virtualMachines/nicpwhecluster-h8lq5-bootstrap", "resourceGroup": "nicpwhecluster-h8lq5-rg", "resourceName": "nicpwhecluster-h8lq5-bootstrap", "resourceType": "Microsoft.Compute/virtualMachines" } ], "id": "/subscriptions/<id>/resourceGroups/nicpwhecluster-h8lq5-rg/providers/Microsoft.Network/networkSecurityGroups/nicpwhecluster-h8lq5-nsg/securityRules/bootstrap_ssh_in", "resourceGroup": "nicpwhecluster-h8lq5-rg", "resourceName": "nicpwhecluster-h8lq5-nsg/bootstrap_ssh_in", "resourceType": "Microsoft.Network/networkSecurityGroups/securityRules" } ], "duration": "PT2M34.7216702S", "error": null, "mode": "Incremental", "onErrorDeployment": null, "outputResources": [ { "id": "/subscriptions/<id>/resourceGroups/nicpwhecluster-h8lq5-rg/providers/Microsoft.Compute/virtualMachines/nicpwhecluster-h8lq5-bootstrap", "resourceGroup": "nicpwhecluster-h8lq5-rg" }, { "id": "/subscriptions/<id>/resourceGroups/nicpwhecluster-h8lq5-rg/providers/Microsoft.Network/networkInterfaces/nicpwhecluster-h8lq5-bootstrap-nic", "resourceGroup": "nicpwhecluster-h8lq5-rg" }, { "id": "/subscriptions/<id>/resourceGroups/nicpwhecluster-h8lq5-rg/providers/Microsoft.Network/networkSecurityGroups/nicpwhecluster-h8lq5-nsg/securityRules/bootstrap_ssh_in", "resourceGroup": "nicpwhecluster-h8lq5-rg" }, { "id": "/subscriptions/<id>/resourceGroups/nicpwhecluster-h8lq5-rg/providers/Microsoft.Network/publicIPAddresses/nicpwhecluster-h8lq5-bootstrap-ssh-pip", "resourceGroup": "nicpwhecluster-h8lq5-rg" } ], "outputs": null, "parameters": { "baseName": { "type": "String", "value": "nicpwhecluster-h8lq5" }, "bootstrapIgnition": { "type": "String", "value": "eyJpZ25pdGlvbiI6eyJ2ZXJzaW9uIjoiMi4yLjAiLCJjb25maWciOnsicmVwbGFjZSI6eyJzb3VyY2UiOiJodHRwczovL25pY3B3aGVjbHVzdGVyc2EuYmxvYi5jb3JlLndpbmRvd3MubmV0L2ZpbGVzL2Jvb3RzdHJhcC5pZ24ifX19fQo=" }, "bootstrapVMSize": { "type": "String", "value": "Standard_D4s_v3" }, "sshKeyData": { "type": "SecureString" } }, "parametersLink": null, "providers": [ { "id": null, "namespace": "Microsoft.Network", "registrationPolicy": null, "registrationState": null, "resourceTypes": [ { "aliases": null, "apiProfiles": null, "apiVersions": null, "capabilities": null, "defaultApiVersion": null, "locationMappings": null, "locations": [ "japaneast" ], "properties": null, "resourceType": "publicIPAddresses" }, { "aliases": null, "apiProfiles": null, "apiVersions": null, "capabilities": null, "defaultApiVersion": null, "locationMappings": null, "locations": [ "japaneast" ], "properties": null, "resourceType": "networkInterfaces" }, { "aliases": null, "apiProfiles": null, "apiVersions": null, "capabilities": null, "defaultApiVersion": null, "locationMappings": null, "locations": [ "japaneast" ], "properties": null, "resourceType": "networkSecurityGroups/securityRules" } ] }, { "id": null, "namespace": "Microsoft.Compute", "registrationPolicy": null, "registrationState": null, "resourceTypes": [ { "aliases": null, "apiProfiles": null, "apiVersions": null, "capabilities": null, "defaultApiVersion": null, "locationMappings": null, "locations": [ "japaneast" ], "properties": null, "resourceType": "virtualMachines" } ] } ], "provisioningState": "Succeeded", "templateHash": "61131872004139608", "templateLink": null, "timestamp": "2021-02-24T07:15:18.354401+00:00", "validatedResources": null }, "resourceGroup": "nicpwhecluster-h8lq5-rg", "tags": null, "type": "Microsoft.Resources/deployments" } (2)コントロールプレーンの作成 マニュアルページにある「コントロールプレーンマシンの ARM テンプレート」の内容をコピーして/home/user01/os45ディレクトリに05_masters.jsonというファイルを作成し、コマンドを実行します。 $ az deployment group create -g ${RESOURCE_GROUP} --template-file "/home/user01/os45/05_masters.json" --parameters masterIgnition="${MASTER_IGNITION}" --parameters sshKeyData="${SSH_KEY}" --parameters privateDNSZoneName="${CLUSTER_NAME}.${BASE_DOMAIN}" --parameters baseName="${INFRA_ID}" {- Finished .. "id": "/subscriptions/<id>/resourceGroups/nicpwhecluster-h8lq5-rg/providers/Microsoft.Resources/deployments/05_masters", "location": null, "name": "05_masters", "properties": { "correlationId": "8d3c2bed-113b-4889-8aa7-b0bfba69ea74", "debugSetting": null, "dependencies": [ { "dependsOn": [ { "id": "/subscriptions/<id>/resourceGroups/nicpwhecluster-h8lq5-rg/providers/Microsoft.Network/networkInterfaces/nicpwhecluster-h8lq5-master-0-nic", "resourceGroup": "nicpwhecluster-h8lq5-rg", "resourceName": "nicpwhecluster-h8lq5-master-0-nic", "resourceType": "Microsoft.Network/networkInterfaces" } ], "id": "/subscriptions/<id>/resourceGroups/nicpwhecluster-h8lq5-rg/providers/Microsoft.Network/privateDnsZones/nicpwhecluster./A/etcd-0", "resourceGroup": "nicpwhecluster-h8lq5-rg", "resourceName": "nicpwhecluster./etcd-0", "resourceType": "Microsoft.Network/privateDnsZones/A" }, { "dependsOn": [ { "id": "/subscriptions/<id>/resourceGroups/nicpwhecluster-h8lq5-rg/providers/Microsoft.Network/networkInterfaces/nicpwhecluster-h8lq5-master-1-nic", "resourceGroup": "nicpwhecluster-h8lq5-rg", "resourceName": "nicpwhecluster-h8lq5-master-1-nic", "resourceType": "Microsoft.Network/networkInterfaces" } ], "id": "/subscriptions/<id>/resourceGroups/nicpwhecluster-h8lq5-rg/providers/Microsoft.Network/privateDnsZones/nicpwhecluster./A/etcd-1", "resourceGroup": "nicpwhecluster-h8lq5-rg", "resourceName": "nicpwhecluster./etcd-1", "resourceType": "Microsoft.Network/privateDnsZones/A" }, { "dependsOn": [ { "id": "/subscriptions/<id>/resourceGroups/nicpwhecluster-h8lq5-rg/providers/Microsoft.Network/networkInterfaces/nicpwhecluster-h8lq5-master-2-nic", "resourceGroup": "nicpwhecluster-h8lq5-rg", "resourceName": "nicpwhecluster-h8lq5-master-2-nic", "resourceType": "Microsoft.Network/networkInterfaces" } ], "id": "/subscriptions/<id>/resourceGroups/nicpwhecluster-h8lq5-rg/providers/Microsoft.Network/privateDnsZones/nicpwhecluster./A/etcd-2", "resourceGroup": "nicpwhecluster-h8lq5-rg", "resourceName": "nicpwhecluster./etcd-2", "resourceType": "Microsoft.Network/privateDnsZones/A" }, { "dependsOn": [ { "id": "/subscriptions/<id>/resourceGroups/nicpwhecluster-h8lq5-rg/providers/Microsoft.Network/networkInterfaces/nicpwhecluster-h8lq5-master-0-nic", "resourceGroup": "nicpwhecluster-h8lq5-rg", "resourceName": "nicpwhecluster-h8lq5-master-0-nic", "resourceType": "Microsoft.Network/networkInterfaces" }, { "id": "/subscriptions/<id>/resourceGroups/nicpwhecluster-h8lq5-rg/providers/Microsoft.Network/privateDnsZones/nicpwhecluster./A/etcd-0", "resourceGroup": "nicpwhecluster-h8lq5-rg", "resourceName": "nicpwhecluster./etcd-0", "resourceType": "Microsoft.Network/privateDnsZones/A" }, { "id": "/subscriptions/<id>/resourceGroups/nicpwhecluster-h8lq5-rg/providers/Microsoft.Network/privateDnsZones/nicpwhecluster./SRV/_etcd-server-ssl._tcp", "resourceGroup": "nicpwhecluster-h8lq5-rg", "resourceName": "nicpwhecluster./_etcd-server-ssl._tcp", "resourceType": "Microsoft.Network/privateDnsZones/SRV" } ], "id": "/subscriptions/<id>/resourceGroups/nicpwhecluster-h8lq5-rg/providers/Microsoft.Compute/virtualMachines/nicpwhecluster-h8lq5-master-0", "resourceGroup": "nicpwhecluster-h8lq5-rg", "resourceName": "nicpwhecluster-h8lq5-master-0", "resourceType": "Microsoft.Compute/virtualMachines" }, { "dependsOn": [ { "id": "/subscriptions/<id>/resourceGroups/nicpwhecluster-h8lq5-rg/providers/Microsoft.Network/networkInterfaces/nicpwhecluster-h8lq5-master-1-nic", "resourceGroup": "nicpwhecluster-h8lq5-rg", "resourceName": "nicpwhecluster-h8lq5-master-1-nic", "resourceType": "Microsoft.Network/networkInterfaces" }, { "id": "/subscriptions/<id>/resourceGroups/nicpwhecluster-h8lq5-rg/providers/Microsoft.Network/privateDnsZones/nicpwhecluster./A/etcd-1", "resourceGroup": "nicpwhecluster-h8lq5-rg", "resourceName": "nicpwhecluster./etcd-1", "resourceType": "Microsoft.Network/privateDnsZones/A" }, { "id": "/subscriptions/<id>/resourceGroups/nicpwhecluster-h8lq5-rg/providers/Microsoft.Network/privateDnsZones/nicpwhecluster./SRV/_etcd-server-ssl._tcp", "resourceGroup": "nicpwhecluster-h8lq5-rg", "resourceName": "nicpwhecluster./_etcd-server-ssl._tcp", "resourceType": "Microsoft.Network/privateDnsZones/SRV" } ], "id": "/subscriptions/<id>/resourceGroups/nicpwhecluster-h8lq5-rg/providers/Microsoft.Compute/virtualMachines/nicpwhecluster-h8lq5-master-1", "resourceGroup": "nicpwhecluster-h8lq5-rg", "resourceName": "nicpwhecluster-h8lq5-master-1", "resourceType": "Microsoft.Compute/virtualMachines" }, { "dependsOn": [ { "id": "/subscriptions/<id>/resourceGroups/nicpwhecluster-h8lq5-rg/providers/Microsoft.Network/networkInterfaces/nicpwhecluster-h8lq5-master-2-nic", "resourceGroup": "nicpwhecluster-h8lq5-rg", "resourceName": "nicpwhecluster-h8lq5-master-2-nic", "resourceType": "Microsoft.Network/networkInterfaces" }, { "id": "/subscriptions/<id>/resourceGroups/nicpwhecluster-h8lq5-rg/providers/Microsoft.Network/privateDnsZones/nicpwhecluster./A/etcd-2", "resourceGroup": "nicpwhecluster-h8lq5-rg", "resourceName": "nicpwhecluster./etcd-2", "resourceType": "Microsoft.Network/privateDnsZones/A" }, { "id": "/subscriptions/<id>/resourceGroups/nicpwhecluster-h8lq5-rg/providers/Microsoft.Network/privateDnsZones/nicpwhecluster./SRV/_etcd-server-ssl._tcp", "resourceGroup": "nicpwhecluster-h8lq5-rg", "resourceName": "nicpwhecluster./_etcd-server-ssl._tcp", "resourceType": "Microsoft.Network/privateDnsZones/SRV" } ], "id": "/subscriptions/<id>/resourceGroups/nicpwhecluster-h8lq5-rg/providers/Microsoft.Compute/virtualMachines/nicpwhecluster-h8lq5-master-2", "resourceGroup": "nicpwhecluster-h8lq5-rg", "resourceName": "nicpwhecluster-h8lq5-master-2", "resourceType": "Microsoft.Compute/virtualMachines" } ], "duration": "PT2M25.3829982S", "error": null, "mode": "Incremental", "onErrorDeployment": null, "outputResources": [ { "id": "/subscriptions/<id>/resourceGroups/nicpwhecluster-h8lq5-rg/providers/Microsoft.Compute/virtualMachines/nicpwhecluster-h8lq5-master-0", "resourceGroup": "nicpwhecluster-h8lq5-rg" }, { "id": "/subscriptions/<id>/resourceGroups/nicpwhecluster-h8lq5-rg/providers/Microsoft.Compute/virtualMachines/nicpwhecluster-h8lq5-master-1", "resourceGroup": "nicpwhecluster-h8lq5-rg" }, { "id": "/subscriptions/<id>/resourceGroups/nicpwhecluster-h8lq5-rg/providers/Microsoft.Compute/virtualMachines/nicpwhecluster-h8lq5-master-2", "resourceGroup": "nicpwhecluster-h8lq5-rg" }, { "id": "/subscriptions/<id>/resourceGroups/nicpwhecluster-h8lq5-rg/providers/Microsoft.Network/networkInterfaces/nicpwhecluster-h8lq5-master-0-nic", "resourceGroup": "nicpwhecluster-h8lq5-rg" }, { "id": "/subscriptions/<id>/resourceGroups/nicpwhecluster-h8lq5-rg/providers/Microsoft.Network/networkInterfaces/nicpwhecluster-h8lq5-master-1-nic", "resourceGroup": "nicpwhecluster-h8lq5-rg" }, { "id": "/subscriptions/<id>/resourceGroups/nicpwhecluster-h8lq5-rg/providers/Microsoft.Network/networkInterfaces/nicpwhecluster-h8lq5-master-2-nic", "resourceGroup": "nicpwhecluster-h8lq5-rg" }, { "id": "/subscriptions/<id>/resourceGroups/nicpwhecluster-h8lq5-rg/providers/Microsoft.Network/privateDnsZones/nicpwhecluster./A/etcd-0", "resourceGroup": "nicpwhecluster-h8lq5-rg" }, { "id": "/subscriptions/<id>/resourceGroups/nicpwhecluster-h8lq5-rg/providers/Microsoft.Network/privateDnsZones/nicpwhecluster./A/etcd-1", "resourceGroup": "nicpwhecluster-h8lq5-rg" }, { "id": "/subscriptions/<id>/resourceGroups/nicpwhecluster-h8lq5-rg/providers/Microsoft.Network/privateDnsZones/nicpwhecluster./A/etcd-2", "resourceGroup": "nicpwhecluster-h8lq5-rg" }, { "id": "/subscriptions/<id>/resourceGroups/nicpwhecluster-h8lq5-rg/providers/Microsoft.Network/privateDnsZones/nicpwhecluster./SRV/_etcd-server-ssl._tcp", "resourceGroup": "nicpwhecluster-h8lq5-rg" } ], "outputs": null, "parameters": { "baseName": { "type": "String", "value": "nicpwhecluster-h8lq5" }, "diskSizeGB": { "type": "Int", "value": 1024 }, "masterIgnition": { "type": "String", "value": "eyJpZ25pdGlvbiI6eyJjb25maWciOnsiYXBwZW5kIjpbeyJzb3VyY2UiOiJodHRwczovL2FwaS1p\nbnQubmljcHdoZWNsdXN0ZXIuYXp1cmUtY2xvdWRwYWstbmljcHRlc3QuY29tOjIyNjIzL2NvbmZp\nZy9tYXN0ZXIiLCJ2ZXJpZmljYXRpb24iOnt9fV19LCJzZWN1cml0eSI6eyJ0bHMiOnsiY2VydGlm\naWNhdGVBdXRob3JpdGllcyI6W3sic291cmNlIjoiZGF0YTp0ZXh0L3BsYWluO2NoYXJzZXQ9dXRm\nLTg7YmFzZTY0LExTMHRMUzFDUlVkSlRpQkRSVkpVU1VaSlEwRlVSUzB0TFMwdENrMUpTVVJGUkVO\nRFFXWnBaMEYzU1VKQlowbEpVek0xZEVoNmRtUnVWMFYzUkZGWlNrdHZXa2xvZG1OT1FWRkZURUpS\nUVhkS2FrVlRUVUpCUjBFeFZVVUtRM2hOU21JelFteGliazV2WVZkYU1FMVNRWGRFWjFsRVZsRlJS\nRVYzWkhsaU1qa3dURmRPYUUxQ05GaEVWRWw0VFVSSmVVNUVRVEpOUkVFd1RteHZXQXBFVkUxNFRV\nUkplVTFxUVRKTlJFRXdUbXh2ZDBwcVJWTk5Ra0ZIUVRGVlJVTjRUVXBpTTBKc1ltNU9iMkZYV2pC\nTlVrRjNSR2RaUkZaUlVVUkZkMlI1Q21JeU9UQk1WMDVvVFVsSlFrbHFRVTVDWjJ0eGFHdHBSemwz\nTUVKQlVVVkdRVUZQUTBGUk9FRk5TVWxDUTJkTFEwRlJSVUV5VW14VlJuVjBVbUZtVHpRS2FVcFBh\nVTR4YVZvMWNYWmFkMjQ1TUdaNGQwZzVRelF5T0M5MWFHVXZkV2hXVTJOdVVURnVjV3Q0UVd0c2JW\naHlNbmhVVmxsMWJXUmFOREptTmtJeE5nb3dkM0F3TjNWbFYxbHBTMlZPT1VkclprUjVPRlpZUTJS\nTU5raHNkRGxVWVVrd01UQkpUakJUVUVWWldFeDFORmxsSzJoRVRpdHJkR3RoV0V0a1QycG5DbWRO\nTHpOQmMwRlFSM1p5UjNoMlVUa3ZURloxZW5odVkwNUhWVUppTUZnNU1tVnFURWRMVGtoalZITlNU\nSFZtWVdSSFJFOVBibXhYZDJWWkwySmFOa1lLZUZCQ05FVjVhVVJHUVhsbmEwUkVSVFJyT0RkeVNY\naDVZVkpZTkhRMVkwOXpSWFpJZFdOSE5tUXdSekl3U2xRMWMzcHZhV0pwTUN0NVJGcE1kRk51ZFFw\nYWIyWkJTaXREZVRoVloxSndZWE5sYUZjeFpteHNWRklyZURSUVVDODFTbFUxYURWV00ySnlSM0pJ\nVjBwTVFqUnVhemszWm10aVFVTTJiMlZzUkdOWENqbFNlamQwVTFKT1RWRkpSRUZSUVVKdk1FbDNV\nVVJCVDBKblRsWklVVGhDUVdZNFJVSkJUVU5CY1ZGM1JIZFpSRlpTTUZSQlVVZ3ZRa0ZWZDBGM1JV\nSUtMM3BCWkVKblRsWklVVFJGUm1kUlZUTktkRWMzZGtKb1RrWlllREptYzNWbFdHNTNVV0ZoTjNW\nRVdYZEVVVmxLUzI5YVNXaDJZMDVCVVVWTVFsRkJSQXBuWjBWQ1FVbHhNa2xNU1c4NGNVbFpOMXA0\nZERoc04yOUthVzQzY0U1SFZrZ3ZRMDF4Umlzd01GTlpVemQ2VGxBck1GZzBRMU5RUWtrd1dtWllW\nM1Z3Q2s1U1kwVkpTVGxqVW5vME1tczBOVlZTVm1saU5XeFdVR1prY1RSa2NEZG1aSGRKVVdGc04y\nTnNPSEJVVUhJMVpXcG9SbEJGVmpSeFpGY3pWSGRFVkhjS00yOTZZWGc1UmtVM1p5dGxZbEp6Vmtk\nSVlWRlVUVzVDZVRKQmFrVkJZbGxGTkRSWlp6UkJjbWRoWlZGaVNUZGhhMkp6WjNSNlpqQnlUSGg1\nU1RWR1RncHNiMmR5ZUcxV1dFdFJNVkUwYzI1NmVWWndSa05tUW05WFpraFdVMmhUUm1rM2JHUm9S\nV3RsU0ZaQ1ExaHNPVzlYUTI5UUszQmtUalp0UjFsb1dGTlZDbFZVYUd4RVpXcEZNV2x0ZVhGTmVI\nTnhTblJJYjJsdFoxTnJkWE5SVkVWVk1ETXdZVWRrUWtOVWNITXpaM0JPTWtKQmNqVm5SMVpDY0hk\nalJtOHZjazRLT1hKbE1FSk5URTFCU21SSFdGSlVSekJLWmtJNE1XNVVWUzlSUFFvdExTMHRMVVZP\nUkNCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2c9PSIsInZlcmlmaWNhdGlvbiI6e319XX19LCJ0aW1l\nb3V0cyI6e30sInZlcnNpb24iOiIyLjIuMCJ9LCJuZXR3b3JrZCI6e30sInBhc3N3ZCI6e30sInN0\nb3JhZ2UiOnt9LCJzeXN0ZW1kIjp7fX0=" }, "masterVMSize": { "type": "String", "value": "Standard_D8s_v3" }, "numberOfMasters": { "type": "Int", "value": 3 }, "privateDNSZoneName": { "type": "String", "value": "nicpwhecluster." }, "sshKeyData": { "type": "SecureString" } }, "parametersLink": null, "providers": [ { "id": null, "namespace": "Microsoft.Network", "registrationPolicy": null, "registrationState": null, "resourceTypes": [ { "aliases": null, "apiProfiles": null, "apiVersions": null, "capabilities": null, "defaultApiVersion": null, "locationMappings": null, "locations": [ "japaneast" ], "properties": null, "resourceType": "privateDnsZones/SRV" }, { "aliases": null, "apiProfiles": null, "apiVersions": null, "capabilities": null, "defaultApiVersion": null, "locationMappings": null, "locations": [ "japaneast" ], "properties": null, "resourceType": "networkInterfaces" }, { "aliases": null, "apiProfiles": null, "apiVersions": null, "capabilities": null, "defaultApiVersion": null, "locationMappings": null, "locations": [ "japaneast" ], "properties": null, "resourceType": "privateDnsZones/A" } ] }, { "id": null, "namespace": "Microsoft.Compute", "registrationPolicy": null, "registrationState": null, "resourceTypes": [ { "aliases": null, "apiProfiles": null, "apiVersions": null, "capabilities": null, "defaultApiVersion": null, "locationMappings": null, "locations": [ "japaneast" ], "properties": null, "resourceType": "virtualMachines" } ] } ], "provisioningState": "Succeeded", "templateHash": "6843960507431905901", "templateLink": null, "timestamp": "2021-02-24T08:02:39.379059+00:00", "validatedResources": null }, "resourceGroup": "nicpwhecluster-h8lq5-rg", "tags": null, "type": "Microsoft.Resources/deployments" } (3)ワーカーマシンの作成 まず変数をエクスポートします。 $ export WORKER_IGNITION=`cat /home/user01/os45/worker.ign | base64` マニュアルページにある「ワーカーマシンの ARM テンプレート」の内容をコピーして/home/user01/os45ディレクトリに06_workers.jsonというファイルを作成し、コマンドを実行します。 $ az deployment group create -g ${RESOURCE_GROUP} --template-file "/home/user01/os45/06_workers.json" --parameters workerIgnition="${WORKER_IGNITION}" --parameters sshKeyData="${SSH_KEY}" --parameters baseName="${INFRA_ID}" {- Finished .. "id": "/subscriptions/<id>/resourceGroups/nicpwhecluster-h8lq5-rg/providers/Microsoft.Resources/deployments/06_workers", "location": null, "name": "06_workers", "properties": { "correlationId": "f5b06e10-75d0-4768-8546-637a838d11f4", "debugSetting": null, "dependencies": [], "duration": "PT1M45.2779547S", "error": null, "mode": "Incremental", "onErrorDeployment": null, "outputResources": [ { "id": "/subscriptions/<id>/resourceGroups/nicpwhecluster-h8lq5-rg/providers/Microsoft.Compute/virtualMachines/nicpwhecluster-h8lq5-worker-japaneast-1", "resourceGroup": "nicpwhecluster-h8lq5-rg" }, { "id": "/subscriptions/<id>/resourceGroups/nicpwhecluster-h8lq5-rg/providers/Microsoft.Compute/virtualMachines/nicpwhecluster-h8lq5-worker-japaneast-2", "resourceGroup": "nicpwhecluster-h8lq5-rg" }, { "id": "/subscriptions/<id>/resourceGroups/nicpwhecluster-h8lq5-rg/providers/Microsoft.Compute/virtualMachines/nicpwhecluster-h8lq5-worker-japaneast-3", "resourceGroup": "nicpwhecluster-h8lq5-rg" }, { "id": "/subscriptions/<id>/resourceGroups/nicpwhecluster-h8lq5-rg/providers/Microsoft.Network/networkInterfaces/nicpwhecluster-h8lq5-worker-japaneast-1-nic", "resourceGroup": "nicpwhecluster-h8lq5-rg" }, { "id": "/subscriptions/<id>/resourceGroups/nicpwhecluster-h8lq5-rg/providers/Microsoft.Network/networkInterfaces/nicpwhecluster-h8lq5-worker-japaneast-2-nic", "resourceGroup": "nicpwhecluster-h8lq5-rg" }, { "id": "/subscriptions/<id>/resourceGroups/nicpwhecluster-h8lq5-rg/providers/Microsoft.Network/networkInterfaces/nicpwhecluster-h8lq5-worker-japaneast-3-nic", "resourceGroup": "nicpwhecluster-h8lq5-rg" } ], "outputs": null, "parameters": { "baseName": { "type": "String", "value": "nicpwhecluster-h8lq5" }, "nodeVMSize": { "type": "String", "value": "Standard_D4s_v3" }, "numberOfNodes": { "type": "Int", "value": 3 }, "sshKeyData": { "type": "SecureString" }, "workerIgnition": { "type": "String", "value": "eyJpZ25pdGlvbiI6eyJjb25maWciOnsiYXBwZW5kIjpbeyJzb3VyY2UiOiJodHRwczovL2FwaS1p\nbnQubmljcHdoZWNsdXN0ZXIuYXp1cmUtY2xvdWRwYWstbmljcHRlc3QuY29tOjIyNjIzL2NvbmZp\nZy93b3JrZXIiLCJ2ZXJpZmljYXRpb24iOnt9fV19LCJzZWN1cml0eSI6eyJ0bHMiOnsiY2VydGlm\naWNhdGVBdXRob3JpdGllcyI6W3sic291cmNlIjoiZGF0YTp0ZXh0L3BsYWluO2NoYXJzZXQ9dXRm\nLTg7YmFzZTY0LExTMHRMUzFDUlVkSlRpQkRSVkpVU1VaSlEwRlVSUzB0TFMwdENrMUpTVVJGUkVO\nRFFXWnBaMEYzU1VKQlowbEpVek0xZEVoNmRtUnVWMFYzUkZGWlNrdHZXa2xvZG1OT1FWRkZURUpS\nUVhkS2FrVlRUVUpCUjBFeFZVVUtRM2hOU21JelFteGliazV2WVZkYU1FMVNRWGRFWjFsRVZsRlJS\nRVYzWkhsaU1qa3dURmRPYUUxQ05GaEVWRWw0VFVSSmVVNUVRVEpOUkVFd1RteHZXQXBFVkUxNFRV\nUkplVTFxUVRKTlJFRXdUbXh2ZDBwcVJWTk5Ra0ZIUVRGVlJVTjRUVXBpTTBKc1ltNU9iMkZYV2pC\nTlVrRjNSR2RaUkZaUlVVUkZkMlI1Q21JeU9UQk1WMDVvVFVsSlFrbHFRVTVDWjJ0eGFHdHBSemwz\nTUVKQlVVVkdRVUZQUTBGUk9FRk5TVWxDUTJkTFEwRlJSVUV5VW14VlJuVjBVbUZtVHpRS2FVcFBh\nVTR4YVZvMWNYWmFkMjQ1TUdaNGQwZzVRelF5T0M5MWFHVXZkV2hXVTJOdVVURnVjV3Q0UVd0c2JW\naHlNbmhVVmxsMWJXUmFOREptTmtJeE5nb3dkM0F3TjNWbFYxbHBTMlZPT1VkclprUjVPRlpZUTJS\nTU5raHNkRGxVWVVrd01UQkpUakJUVUVWWldFeDFORmxsSzJoRVRpdHJkR3RoV0V0a1QycG5DbWRO\nTHpOQmMwRlFSM1p5UjNoMlVUa3ZURloxZW5odVkwNUhWVUppTUZnNU1tVnFURWRMVGtoalZITlNU\nSFZtWVdSSFJFOVBibXhYZDJWWkwySmFOa1lLZUZCQ05FVjVhVVJHUVhsbmEwUkVSVFJyT0RkeVNY\naDVZVkpZTkhRMVkwOXpSWFpJZFdOSE5tUXdSekl3U2xRMWMzcHZhV0pwTUN0NVJGcE1kRk51ZFFw\nYWIyWkJTaXREZVRoVloxSndZWE5sYUZjeFpteHNWRklyZURSUVVDODFTbFUxYURWV00ySnlSM0pJ\nVjBwTVFqUnVhemszWm10aVFVTTJiMlZzUkdOWENqbFNlamQwVTFKT1RWRkpSRUZSUVVKdk1FbDNV\nVVJCVDBKblRsWklVVGhDUVdZNFJVSkJUVU5CY1ZGM1JIZFpSRlpTTUZSQlVVZ3ZRa0ZWZDBGM1JV\nSUtMM3BCWkVKblRsWklVVFJGUm1kUlZUTktkRWMzZGtKb1RrWlllREptYzNWbFdHNTNVV0ZoTjNW\nRVdYZEVVVmxLUzI5YVNXaDJZMDVCVVVWTVFsRkJSQXBuWjBWQ1FVbHhNa2xNU1c4NGNVbFpOMXA0\nZERoc04yOUthVzQzY0U1SFZrZ3ZRMDF4Umlzd01GTlpVemQ2VGxBck1GZzBRMU5RUWtrd1dtWllW\nM1Z3Q2s1U1kwVkpTVGxqVW5vME1tczBOVlZTVm1saU5XeFdVR1prY1RSa2NEZG1aSGRKVVdGc04y\nTnNPSEJVVUhJMVpXcG9SbEJGVmpSeFpGY3pWSGRFVkhjS00yOTZZWGc1UmtVM1p5dGxZbEp6Vmtk\nSVlWRlVUVzVDZVRKQmFrVkJZbGxGTkRSWlp6UkJjbWRoWlZGaVNUZGhhMkp6WjNSNlpqQnlUSGg1\nU1RWR1RncHNiMmR5ZUcxV1dFdFJNVkUwYzI1NmVWWndSa05tUW05WFpraFdVMmhUUm1rM2JHUm9S\nV3RsU0ZaQ1ExaHNPVzlYUTI5UUszQmtUalp0UjFsb1dGTlZDbFZVYUd4RVpXcEZNV2x0ZVhGTmVI\nTnhTblJJYjJsdFoxTnJkWE5SVkVWVk1ETXdZVWRrUWtOVWNITXpaM0JPTWtKQmNqVm5SMVpDY0hk\nalJtOHZjazRLT1hKbE1FSk5URTFCU21SSFdGSlVSekJLWmtJNE1XNVVWUzlSUFFvdExTMHRMVVZP\nUkNCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2c9PSIsInZlcmlmaWNhdGlvbiI6e319XX19LCJ0aW1l\nb3V0cyI6e30sInZlcnNpb24iOiIyLjIuMCJ9LCJuZXR3b3JrZCI6e30sInBhc3N3ZCI6e30sInN0\nb3JhZ2UiOnt9LCJzeXN0ZW1kIjp7fX0=" } }, "parametersLink": null, "providers": [ { "id": null, "namespace": "Microsoft.Resources", "registrationPolicy": null, "registrationState": null, "resourceTypes": [ { "aliases": null, "apiProfiles": null, "apiVersions": null, "capabilities": null, "defaultApiVersion": null, "locationMappings": null, "locations": [ null ], "properties": null, "resourceType": "deployments" } ] } ], "provisioningState": "Succeeded", "templateHash": "18038938870077969594", "templateLink": null, "timestamp": "2021-02-24T08:19:00.447842+00:00", "validatedResources": null }, "resourceGroup": "nicpwhecluster-h8lq5-rg", "tags": null, "type": "Microsoft.Resources/deployments" } (4)クラスターへのログイン ocコマンドにてクラスタにログインします。 $ export KUBECONFIG=/home/user01/os45/auth/kubeconfig $ oc whoami system:admin (5)マシンの証明書署名要求の承認 まずマスターに認識されるすべてのノードを一覧表示します。まだワーカーマシンが表示されていません。 $ oc get nodes NAME STATUS ROLES AGE VERSION nicpwhecluster-h8lq5-master-0 Ready master 21m v1.18.3+e574db2 nicpwhecluster-h8lq5-master-1 Ready master 21m v1.18.3+e574db2 nicpwhecluster-h8lq5-master-2 Ready master 21m v1.18.3+e574db2 保留中の証明書署名要求 (CSR) でいくつか「Pending」になっていることを確認します。 $ oc get csr NAME AGE SIGNERNAME REQUESTOR CONDITION csr-4ltzq 21m kubernetes.io/kube-apiserver-client-kubelet system:serviceaccount:openshift-machine-config-operator:node-bootstrapper Approved,Issued csr-5ff59 22m kubernetes.io/kube-apiserver-client-kubelet system:serviceaccount:openshift-machine-config-operator:node-bootstrapper Approved,Issued csr-8cxlk 22m kubernetes.io/kube-apiserver-client-kubelet system:serviceaccount:openshift-machine-config-operator:node-bootstrapper Approved,Issued csr-d79hz 21m kubernetes.io/kubelet-serving system:node:nicpwhecluster-h8lq5-master-2 Approved,Issued csr-ghhrm 22m kubernetes.io/kubelet-serving system:node:nicpwhecluster-h8lq5-master-1 Approved,Issued csr-jtts9 7m15s kubernetes.io/kube-apiserver-client-kubelet system:serviceaccount:openshift-machine-config-operator:node-bootstrapper Pending csr-m68ns 7m kubernetes.io/kube-apiserver-client-kubelet system:serviceaccount:openshift-machine-config-operator:node-bootstrapper Pending csr-vgtp6 7m2s kubernetes.io/kube-apiserver-client-kubelet system:serviceaccount:openshift-machine-config-operator:node-bootstrapper Pending csr-wwptz 21m kubernetes.io/kubelet-serving system:node:nicpwhecluster-h8lq5-master-0 Approved,Issued$ oc get csr -o go-template='{{range .items}}{{if not .status}}{{.metadata.name}}{{"\n"}}{{end}}{{end}}' | xargs oc adm certificate approvecertificatesigningrequest.certificates.k8s.io/csr-jtts9 approved certificatesigningrequest.certificates.k8s.io/csr-m68ns approved certificatesigningrequest.certificates.k8s.io/csr-vgtp6 approved 再度マスターに認識されるすべてのノードを一覧表示し、ワーカーマシンがReadyになっていることを確認します。 $ oc get nodes NAME STATUS ROLES AGE VERSION nicpwhecluster-h8lq5-master-0 Ready master 24m v1.18.3+e574db2 nicpwhecluster-h8lq5-master-1 Ready master 25m v1.18.3+e574db2 nicpwhecluster-h8lq5-master-2 Ready master 24m v1.18.3+e574db2 nicpwhecluster-h8lq5-worker-japaneast-1 Ready worker 2m2s v1.18.3+e574db2 nicpwhecluster-h8lq5-worker-japaneast-2 Ready worker 2m6s v1.18.3+e574db2 nicpwhecluster-h8lq5-worker-japaneast-3 Ready worker 2m v1.18.3+e574db2 (6)ブートストラップリソースを削除 これですべてのノードが作成されて利用可能となりましたので、ブートストラップノードと関連するリソースを削除します。 $ ./openshift-install wait-for bootstrap-complete --dir=/home/user01/os45/ --log-level info INFO Waiting up to 20m0s for the Kubernetes API at https://api.nicpwhecluster.:6443... INFO API v1.18.3+e574db2 up INFO Waiting up to 40m0s for bootstrapping to complete... INFO It is now safe to remove the bootstrap resources INFO Time elapsed: 0s $ az network nsg rule delete -g ${RESOURCE_GROUP} --nsg-name ${INFRA_ID}-nsg --name bootstrap_ssh_in $ az vm stop -g ${RESOURCE_GROUP} --name ${INFRA_ID}-bootstrap About to power off the specified VM... It will continue to be billed. To deallocate a VM, run: az vm deallocate. $ az vm deallocate -g ${RESOURCE_GROUP} --name ${INFRA_ID}-bootstrap $ az vm delete -g ${RESOURCE_GROUP} --name ${INFRA_ID}-bootstrap --yes $ az disk delete -g ${RESOURCE_GROUP} --name ${INFRA_ID}-bootstrap_OSDisk --no-wait --yes $ az network nic delete -g ${RESOURCE_GROUP} --name ${INFRA_ID}-bootstrap-nic --no-wait $ az storage blob delete --account-key ${ACCOUNT_KEY} --account-name ${CLUSTER_NAME}sa --container-name files --name bootstrap.ign $ az network public-ip delete -g ${RESOURCE_GROUP} --name ${INFRA_ID}-bootstrap-ssh-pip (7)クラスターのインストールを完了する $ ./openshift-install --dir=/home/user01/os45/ wait-for install-complete INFO Waiting up to 30m0s for the cluster at https://api.nicpwhecluster.:6443 to initialize... INFO Waiting up to 10m0s for the openshift-console route to be created... INFO Install complete! INFO To access the cluster as the system:admin user when using 'oc', run 'export KUBECONFIG=/home/user01/os45/auth/kubeconfig' INFO Access the OpenShift web-console here: https://console-openshift-console.apps.nicpwhecluster. INFO Login to the console with user: "kubeadmin", and password: "<パスワード>" INFO Time elapsed: 1s (8)ログイン $ oc login -u kubeadmin -p  <パスワード>https://api.nicpwhecluster.:6443 The server uses a certificate signed by an unknown authority. You can bypass the certificate check, but any data you send to the server could be intercepted by others. Use insecure connections? (y/n): yLogin successful.You have access to 58 projects, the list has been suppressed. You can list all projects with 'oc projects'Using project "default".    

2021年06月08日

【てくさぽBLOG】WebSphere Hybrid Editionを導入してみた Vol.1 -OpenShift導入編-

こんにちは。 てくさぽBLOGメンバーの岡田です。 今回はIBM WebSphere Hybrid Edition(以下 WSHE)の導入をAzure上で検証してみたので3回シリーズで検証で得られた知見をお伝えします。 当初は以前実施したIBM Cloud Pak for Applications(以下CP4Apps)導入検証をプラットフォームをAzureに変えて検証する予定で進めていたのですが、CP4Appsが販売終了となり後継としてWSHEが発表されたので内容を変更し、WSHEをAzure上で検証することにしました。 今回は3回シリーズの1回目です。 WebSphere Hybrid Editionを導入してみた Vol.1 -OpenShift導入編- *本編 WebSphere Hybrid Editionを導入してみた Vol.2 -WebSphere Liberty導入編- WebSphere Hybrid Editionを導入してみた Vol.3 -ツール編-   1.はじめに 以前、CP4Apps導入検証の際にはAWS上にUser Provisioned Infrastructure(以下、UPI)方式でOpenShift4(以下、OCP4)を構築してみましたが、今回はAzure上でもUPI方式で行ってみました。 なお、筆者はAzure未経験だったので何箇所かつまづきましたが、初心者はこんなところでつまずくんだなあ、と思って読んでいただけると幸いです。 手順は以下を参考にしました。 1.7. ARM テンプレートを使用したクラスターの AZURE へのインストール https://access.redhat.com/documentation/ja-jp/openshift_container_platform/4.5/html/installing_on_azure/installing-azure-user-infra OCP4導入後にWSHEのコンポーネントを導入する予定のため、OCP4のバージョンは4.5を利用しました。(現在はOCP4.5~4.7までサポートされていますが、検証当時はOCP4.5のみサポートでした。) 今回の環境・サーバー構成の概要図は以下となります。Bootstrapを除くと計6ノード構成になります。   2. 事前準備 2-1. 作業用Linux環境準備 OpenShiftのインストール作業に必要なLinux環境を準備します。 今回の作業環境は以下になります。 環境:手元のPC(Windows 10 1909)上にWindows Subsystem for Linux(WSL)+Ubuntu 18.04 実行ユーザー:user01を作成 (1)作業用ディレクトリとして以下2つのディレクトリを作成 /home/user01/os45      ※OpenShift インストールプログラム置き場 /home/user01/os45/conf  ※yamlやjsonなどの設定ファイル置き場 (2)Azure CLIインストール (3)jqパッケージインストール (4)cloudctlインストール (5)ocコマンドインストール 以下の手順でダウンロードします。 ・Red Hat Custmer Portalにログインします。「ダウンロード」をクリックし、次の画面で"Red Hat OpenShift Container Platform"をクリックします。 ・次の画面でバージョン4.5の最新バージョンを選択し、画面下から”OpenShift v4.5 Linux Client"を/home/user01/os45フォルダにダウンロードし、ファイルを解凍し、パスの通っている/user/local/binフォルダに移動します。   2-2. ファイルの準備 (1)OCP4.5インストールファイルのダウンロード ・ocコマンドをダウンロードしたのと同じページで”OpenShift v4.5 Linux Installer"を/home/user01/os45フォルダにダウンロードします。 (2)Pull Secretファイル Red Hat OpenShift Cluster Manager サイトの「Pull Secret」ページから、インストールプルシークレットを/home/user01/os45フォルダにダウンロードします。   2-3. パブリックDNSゾーン設定 (1)リソースグループを作成 まずリソースグループを作成します。今回は「ocp-cluster」という名前のリソースグループを作成しました。 次の画面のタグは特に設定せずに進み、確認画面で「作成」ボタンをクリックします。 (2)App Serviceドメインを作成 今回は「azure-cloudpak-nicptest.com」という名前で作成しました。事前にレジストラからドメイン名を購入せずに作成できるかやってみましょう。 【連絡先情報】を入力します。 ドメインのデプロイが完了したら、nslookupやdigコマンドで確認しました。正しく引けたので、無事ドメインが作成できたようです。別途ドメイン名を用意しておかなくてもよかったです。 〈つまづきポイント:その1〉DNSドメインが正しく作成されない 連絡先情報の”州または準州”の箇所に、最初は”Tokyo-to"と入力してドメインを作成たところ、以下のエラー画面となり正常に作成されませんでした。 原因は”Tokyo-to”と入力した箇所でした。一旦既に作成されていたリソースを削除し、再作成の際に”Tokyo"と入力することで無事ドメインが作成できました。以下は再作成で成功した画面です。 〈つまづきポイント:その2〉Azure アカウント制限は拡張する必要がある? 参考にしたマニュアルにはvCPUの「デフォルトの Azure 制限」がリージョン毎に20、説明に”デフォルトのクラスターには 40 の vCPU が必要であるため、アカウントの上限を引き上げる必要があります。”と書いてあったので引き上げないといけないと思い込みサポートに事情を説明しリクエストしました。ところが、サポートからの回答は契約したサブスクリプションではデフォルトの制限は350コアで必要数は最初から超えているとのことでした。 Azure Portal の [サブスクリプション] ページの [使用量 + クォータ] セクションで確認できると教えてもらいましたので、皆さんもAzure上でOpenShift構築を実施する前には一度確認してみてください。   2-4. サービスプリンシパルの作成 そもそもサービスプリンシパルとはなんでしょう?Azure初心者の私もよく分からず、調べた結果、「Azureリソースを管理・操作するアプリケーションのためのアカウント」とのことでした。 今回はAzure Resource Managerでリソースが構築されるので、そのための専用アカウントと理解しました。 以下を実施します。 (1)Azureへのログイン(az login) (2)アクティブなアカウントの詳細を表示して「tenantId」「id」を確認 (3)アカウントのサービスプリンシパルを作成し「appId」「password」を確認 (4)サービスプリンシパルに追加パーミッションを付与 (4-1)User Access Administrator ロールを割り当て (4-2)Azure Active Directory Graph パーミッションを割り当て (5)パーミッション要求を承認   3.OpenShift 導入 3-1. SSH秘密鍵の作成 クラスタの作成後に、ノードにアクセスするためにSSH秘密鍵を作成します。 (1)作業用Linuxマシン上でgenコマンドを実行しSSHキーを作成 (2)ssh-agent プロセスをバックグラウンドタスクとして開始 (3)SSH プライベートキーを ssh-agent に追加   3-2. インストールファイルの作成 (1)install-config.yaml ファイル生成 (2)ARM テンプレートの一般的な変数のエクスポート (3)クラスターの Kubernetes マニフェストを生成 (4)コントロールプレーン、ワーカーノードを定義する Kubernetes マニフェストファイルを削除 (5)Kubernetes マニフェストファイルを変更 (6)変数のエクスポート (7)Ignition 設定ファイルを取得 (8)ファイルの確認   3-3. Azure リソースグループおよびアイデンティティーの作成 OCPクラスタのインストールに必要なリソースグループとアイデンティティーを作成します。 (1)リソースグループを作成 (2)リソースグループの Azure アイデンティティーを作成 (3)Contributor ロールを Azure アイデンティティーに付与 (3-1)ロール割当に必要な変数をエクスポート (3-2)Contributor ロールをアイデンティティーに割り当て   3-4. RHCOS クラスターイメージおよびブートストラップ Ignition 設定ファイルのアップロード (1)Azureストレージアカウントの作成 (2)ストレージアカウントキーを環境変数としてエクスポート (3)VHD の URL を環境変数にエクスポート (4)選択した VHD を blob にコピー (5)blob ストレージコンテナーを作成し、生成されたbootstrap.ignファイルをアップロード   3-5. DNSゾーンの作成 (1)プライベートDNSゾーンを作成   3-6. Azure での VNet の作成 (1)デプロイメントを作成 (2)VNet テンプレートをプライベート DNS ゾーンにリンク   3-7. RHCOS クラスターイメージのデプロイ (1)RHCOS VHD blob URL を変数としてエクスポート (2)クラスターイメージのデプロイ   3-8.ネットワークおよび負荷分散コンポーネントの作成 (1)ネットワークオブジェクトおよびロードバランサーのデプロイ (2)変数のエクスポートとクラスターを既存のパブリックゾーンに追加 以上で、OCPノードを作成する手前まで完了しました。   3-9.ノードの作成 (1)ブートストラップマシンの作成 (2)コントロールプレーンの作成 (3)ワーカーマシンの作成 (4)クラスターへのログイン (5)マシンの証明書署名要求の承認 (6)ブートストラップリソースを削除 (7)クラスターのインストールを完了する (8)ログイン クラスタにログインできたのでインストールは成功です! 長かったですね、最初のディレクトリ作成から数えて計50工程がようやく終わりました。   まとめ いかがでしたでしょうか。やはりUPIは作業工程が多くて大変でした。 記載のとおり、Azureでの確認や設定で何箇所かつまづきましたが、コマンドを実行していくところはマニュアル記載のコマンドでエラーなく進めることができました。 もっと簡単にOCP環境を構築したいのであればIPI(Installer Provisioned Infrastructure)方式もありますが、構成をカスタマイズしたくてUPI方式を選択することもあるかと思いますので、その際にこの記事が参考になればと思います。 ここまでお読みいただきありがとうございました。 次回は構築したこのOpenShift上でのWebSphereをインストールしてみた内容をお伝えいたします。   お問い合わせ この記事に関するご質問は下記までご連絡ください。 エヌアイシー・パートナーズ株式会社 技術支援本部 E-Mail:nicp_support@NIandC.co.jp  

2021年06月08日

データ爆発時代が生んだ“手間レス”オールフラッシュストレージ

企業の保有するデータが、指数関数的に増加しています。 業務のデジタル化が進み帳票などをデジタルデータで保有するようになっただけでなく、現在は画像や動画など、文字列データに比べて格段に容量の大きいデータを多用しています。 また、IoT の進展や POSレジの普及などから、企業はビッグデータの取得が容易になり、これらを活用した AI分析も本格的に始まろうとしています。そのため、こうしたデータを格納するストレージの重要性は高まる一方です。 今日は、"クラウドへのリフト&シフト" が提唱され、理論的には無限の拡張性を備えるクラウドへストレージ環境も軸足を移していこう、という潮流も見受けられます。 しかし、すべてのデータをクラウドに移せるわけではありません。セキュリティ、パフォーマンス、コスト増に対して、一抹の懸念があることも事実だからです。 こうしたことを考え合わせると、現時点での最良策はオンプレミス・ストレージとクラウド・ストレージを適材適所で使い分ける、ということになります。 本記事では、当分オンプレミス・ストレージ中心という企業にも、ハイブリッド・ストレージ化を進めていきたいという企業にも最適な、オールフラッシュストレージ「IBM FlashSystem 5200」についてご紹介します。   Index オンプレミス+クラウドの使い分け、しかし、安易な二刀流では運用が煩雑に ハイブリッドストレージを実現するIBM FlashSystem 5200 企業ストレージ環境のハブになるIBM FlashSystem 5200 豊富なIBM製品の知識と提案サポートで課題解決を支援 この記事に関するお問い合わせ 関連情報   オンプレミス+クラウドの使い分け、しかし、 安易な二刀流では運用が煩雑に これまでオンプレミス・ストレージとクラウド・ストレージ間の連携は、企業でのシステムインテグレーションに委ねられてきました。 そのため、どのようなデータをオンプレミス・ストレージで蓄積しどのようなデータをクラウド・ストレージへ送るか、といった設計だけならともかく、これを実現する開発も自ら行わなければなりませんでした。 また、データ運用のあり方は事業環境の変化に合わせてタイムリーに更新する必要があります。そこで従来は、こうした業務に工数もかかりコストもかかっていたというわけです。 エンドユーザー企業の IT部門に所属するストレージ担当者は、こうした仕事に疑念を抱くことなく取り組んでいます。 しかし IT部門の本来の仕事というのは、企業の経営戦略にそったシステム戦略の立案や実現で、そこに多くの時間を割くためできるかぎり日々の運用管理からは解放されるのが理想です。 この理想と現実のギャップに気づけていないエンドユーザー企業は意外と多く、テクニカルパートナーにとっては提案のポイントになります。   ハイブリッドストレージを実現するIBM FlashSystem 5200 かけがえのないデータ資産を持ち、オンプレミスとクラウドの双方でストレージ環境を徹底的に活用したいエンドユーザー企業にとって、高性能で信頼をおけるハードウェア・ストレージは企業規模のストレージエコシステムの中核として配置するのに最も適した存在です。 IBM FlashSystemシリーズは、IBM が特許を持つ高速かつ長寿命のフラッシュモジュール (FlashCore モジュール、以下FCM) を特長とするオールフラッシュストレージです (概要やラインナップについては、こちらのコラムをご参照ください)。 なかでも新製品 IBM FlashSystem 5200は、2021年10月9日に販売終了となるエントリーモデル IBM FlashSystem 5100 の後継機種です。 ついに 1U化を実現、価格もオールフラッシュでありながらかなりリーズナブルに入手可能になりました。"速いストレージが欲しいけれど、オールフラッシュは高嶺の花でとても手が出ない" とあきらめていたストレージ担当者にこそ、ぜひ知っていただきたいモデルです。 それでは、改めて IBM FlashSystem 5200 の特長を見ていきましょう。   特長1. 19インチラック 1U サイズのコンパクトな筐体 図1. IBM FlashSystem 5200 筐体イメージ〔Storwize V5030 (SAS HDD x 24)との比較〕 この薄さが何よりのニュースです。1Uとなったことにより、筐体スペースが50%以上削減できます。 これはそのままサーバ室やデータセンターでのラック本数削減に直結し、オフィス空間の有効活用やデータセンターコストダウンにつながっていきます。 そしてこの薄い筐体の中に、最大物理容量460TB、データ圧縮機能、重複排除機能を活用すれば、最大容量1.7PB まで格納できます。企業内に散在する膨大な業務データ、IoTデータ、POSデータなどを一元的に収めるデータレイク環境とすることも可能です。 筐体が薄いため活用シーンも広がっていきます。 例えば、エッジコンピューティング。 製造業では、部品や食材などの不良品検出を多くの作業員が目視で行ったり、非常に高価かつ大型の専用機を導入したりしているケースがあります。 しかし、この方法では、コストがかかるだけでなく、新しいタイプの不良品に追随しにくいなど、精度についても限界があります。筐体が薄く高性能なオールフラッシュストレージ、それに、AIによる画像認識技術を組み合わせれば、この仕事を肩代わりできるかもしれません。 IBM FlashSystem 5200 には、"現場におけるストレージ" として幅広い可能性があります。   特長2. 圧倒的なパフォーマンス 非常に高速で、データが増えてもパフォーマンス劣化が起きにくい。それが、IBM FlashSystem 5200 のパフォーマンスを表す表現です。 End-to-End で NVMe に対応しているため、フラッシュドライブへのアクセスがより高速化し、低遅延になりました。 応答時間は 70マイクロ秒未満。つまり、0.00007秒未満というスピードで、End-to-End NVMe だからこそ実現できる高速処理を享受いただけます。 高いパフォーマンスを実現する理由には、BM独自の FCM を採用していることもあります。 FCMはまた、ハードウェア・テクノロジーでデータ圧縮を実現、ストレージのコントローラに負荷をかけることなくデータボリュームを縮小します。 そのため、処理速度を維持できるというのも大きな特長です。 こうして圧倒的なパフォーマンスを発揮することによって1台で多様な業務をカバーするとともに、ビジネススピードの向上や DX の実現も期待できます。 その一方で、IBM FlashSystem 5200 は FCM オンリーのオールフラッシュとしない活用法も可能です。 低遅延・ハイパフォーマンスな Storage Class Memory SSDドライブ、SAS Flashドライブ、NL-SAS HDD との混在が可能なので、アクティブなデータは FCMに、非アクティブなデータはそれ以外に、といった1台の中で使い分けることもできるため、用途ごとにそれぞれストレージを用意するといった面倒な運用から解放されます。   特長3. 管理負担の徹底軽減 IBM FlashSystem 5200 は、オンプレミス・ストレージとクラウド・ストレージを適材適所で使い分けるハイブリッド・ストレージ時代に対応します。 ストレージ仮想化ソフトウェアとして IBM Spectrum Virtualize を搭載しており、これが核となって、様々な角度からそのストレージ運用管理の負担を軽減します。 ハイブリッド・ストレージ化が容易 IBM Cloud や AWS では IBM Spectrum Virtualize for Public Cloud が搭載可能で、IBM FlashSystem 5200 上の IBM Spectrum Virtualize と連携させることで、オンプレミス環境からクラウド環境へのデータ移行が簡単に行えます。(図2) 図2. IBM Spectrum Virtualize をベースとしたデータのクラウド連携 IBM Spectrum Virtualize と IBM Spectrum Virtualize for Public Cloud は、ほぼ同じ UI、ほぼ同じ操作で利用できます。 これにより、クラウド上のストレージも効率的に運用管理が可能です。 ストレージ・システムの仮想化をサポート 他社製ストレージを含む 500 を超えるストレージ・システムを仮想化できます。 システムごとにストレージが分散している場合、個々のストレージで使用率は大きく異なります。基本的にほかのストレージのリソースは共有不可であるため、ほかのストレージ容量にどんなに空きがあっても、満杯に近くなったストレージに対して個別にストレージの容量拡張が必要です。 しかし、IBM Spectrum Virtualize を利用すれば各システムのストレージに対して十分な仮想ボリューム・イメージを提供でき、そのデータ量の増加にともなう保守・拡張作業は、IBM Spectrum Virtualize のストレージ・プール側で一括して行えます。そこに物理的な容量制限はありません。 このストレージ仮想化は高レベルなデータ圧縮機能を利用できることもあり、ストレージ・リソース利用率の最大化にもつながっていきます。 データ最適配置機能がパフォーマンス向上に貢献 IBM Easy Tier と呼ばれるデータの最適配置機能があり、データアクセスをモニターしてアクセス履歴を解析することで、よくアクセスされる有用性の高いデータとあまりアクセスされていない休眠データをツールが判断。 FCM から HDD の低速ディスクまで5種類のディスクから最大3階層間でデータを自動的に再配置します。 これは、ストレージ運用管理を簡素化するというだけでなくホットなデータのみを自動的に高速ストレージ上に配置できるため、ストレージのパフォーマンス向上に貢献します。   こうした IBM Spectrum Virtualize の様々な管理削減機能により、ストレージ担当者は日々のルーチン業務から解放され、戦略立案やシステム企画といった本来の業務に時間を割けるようになるというわけです。   企業ストレージ環境のハブになるIBM FlashSystem 5200 IBM FlashSystem 5200 は、「オンプレミス・ストレージ利用が中心」というニーズ、「今後ハイブリッド・ストレージを推進していきたい」というニーズ、そのどちらにも応えられるハードウェア・ストレージの最新形です。 これがいわばハブの役割を果たして、重要な企業資産であるデータの柔軟なオンプレミス⇔クラウド間移動、オンプレミス・ストレージの活用最大化を、"手間レス" で実現します。 しかも、冒頭で触れたとおり本体価格のコストパフォーマンスも非常に高くなっており、"いつかはオールフラッシュストレージを" と希望されていたエンドユーザー企業へターゲットを広げるのに格好の製品といえます。   豊富なIBM製品の知識と提案サポートで課題解決を支援 エヌアイシー・パートナーズは、IBMハードウェア製品やソフトウェア製品をはじめ、マルチベンダー製品・ソリューションの取り扱いにより、幅広く製品・ソリューションの提案を得意としています。 その一方で、ディストリビューターの立場を生かし、パートナー企業様、また、その先のエンドユーザー企業様に寄り添いながら課題解決に繋がるよう努めています。 私たちはパートナー様に、より売りやすくなる支援、スキル習得の支援、ビジネス領域を拡げていただく支援を提供したいと願っています。 エンドユーザー企業への IBM FlashSystem 5200 の提案を検討するにあたり、何か気になること、不足の情報やお困りのことがあれば、ぜひ、ご相談ください。     この記事に関するお問い合わせ エヌアイシー・パートナーズ株式会社 企画本部 事業企画部 この記事に関するお問い合せは以下のボタンよりお願いいたします。 お問い合わせ   関連情報 IBM ストレージ製品 (製品情報) - ストレージ機能のソフトウェア化を実現した SDS製品 (Software Defined Storage) も含め、幅広いラインアップを取りそろえています。 「壊れにくく、処理速度が落ちない」IBM FlashSystem の特長とラインナップを徹底解説 (コラム) - レイテンシ―が低く高速であることが最大の利点。加えて、データ圧縮などによるストレージ基盤の効率化やマルチベンダー・マルチクラウドへの対応など… ハイブリッドクラウド、最大の課題となる「運用」をクリアする「IBM Spectrum Virtualize for Public Cloud」の実力 (コラム) - ハイブリッドクラウドを実現する「IBM Spectrum Virtualize for Public Cloud」。具体的に何ができるのか? ハイブリッド・クラウド運用&AWS最適化 -IBM Spectrum Virtualize for Public Cloud活用完全ガイド- (ホワイトペーパー) - 「IBM Spectrum Virtualize for Public Cloud」で、ハイブリッド・クラウドの効率的な管理が可能に。さらに、AWS環境単体での活用においても大きなメリットも。   .btn_B{ height:25px; } .btn_B a{ display:block; width:100%; height:100%; text-decoration: none; background:#eb6100; text-align:center; border:1px solid #FFFFFF; color:#FFFFFF; font-size:16px; border-radius:50px; -webkit-border-radius:50px; -moz-border-radius:50px; box-shadow:0px 0px 0px 4px #eb6100; transition: all 0.5s ease; } .btn_B a:hover{ background:#f56500; color:#999999; margin-left:0px; margin-top:0px; box-shadow:0px 0px 0px 4px #f56500; } .bigger { font-size: larger; }  

2021年06月04日

【てくさぽBLOG】IBM Power Virtual ServerのAIX環境を日本ロケールにしてみた

こんにちは。 てくさぽBLOGメンバーの村上です。 本ブログは、IBM Power Virtual Server をトライしてみた内容や感想をご紹介するブログです。 シリーズ化していますので、まずインデックスのご紹介をします。 インデックス ・IBM Power Virtual ServerでAIX環境を作ってみた ・IBM Power Virtual ServerのAIX環境にSWを導入してみた  ・IBM Power Virtual ServerのAIX環境を日本ロケールにしてみた ← 本ページ ・IBM Power Virtual ServerのAIX環境をバックアップしてみた(Part.1) ・IBM Power Virtual ServerのAIX環境をバックアップしてみた(Part.2) ・IBM Power Virtual ServerのAIX環境とIBM Cloud x86環境を接続してみた   本ページでは Power Virtual Server のAIX環境を日本ロケールにする手順を以下の1)、2)のセクションに分けてご紹介します。 1)  事前確認 2)  ロケールの変更 利用したクライアント端末(私のPC)は、Windows10 バージョン2004です。   1) 事前確認 現在のロケールを確認します。 # locale LANG=en_US LC_COLLATE="en_US" LC_CTYPE="en_US" LC_MONETARY="en_US"  LC_NUMERIC="en_US" LC_TIME="en_US" LC_MESSAGES="en_US" LC_ALL= 「en_US」になっています。「英語」環境ですね。 「英語」環境を「日本」環境に変更する前に、日本語のパッケージがAIXにインストールされているかを確認します。 # locale -a C POSIX JA_JP.UTF-8 JA_JP Ja_JP.IBM-943 Ja_JP en_US.8859-15 en_US.IBM-858 en_US.ISO8859-1 en_US ja_JP.UTF-8 上記の出力より、おなじみの日本語の文字コード ・JA_JP:UTF-8 ・Ja_JP:IBM-943 がインストールされていることが分かりました。 Power Virtual Server サービスを東京リージョン上に作成したので、標準で日本語がインストールされているんでしょうね。 AIXといえば、IBM-943 の Shift-JIS というイメージがありませんか?! 私が基盤SEをしていた頃は IBM-943 を設定することが多かった気がするのですが、近年は UTF-8 をよく目にするので、 今回は JA_JP:UTF-8 を設定します。 2)ロケールの変更 ロケールの変更は、smit で 実施します。 # smit lang ・「Change/Show Primary Language Environment」で Enter を押します。 ・「Change/Show Cultural Convention, Language, or Keyboard」で Enter を押します。 ・「Primary CULTURAL convention」で F4 を押します。 ・リストから「UTF-8  Japanese [JA_JP]」を選択し、Enter を押します。 ・「Primary LANGUAGE translation」で F4  を押します。 ・リストから「UTF-8  Japanese [JA_JP]」を選択し、Enter を押します。 ・「INPUT device/directory for software」で F4 を押します。 ・リストから「/usr/sys/inst.images」を選択し、Enter を押します。 ・すべての設定を確認して Enter を押します。 数分待つとOKが出ます。これでロケールの変更が完了です。 ・設定を反映させるために、AIX環境を再起動します。 # shutdown -Fr AIX環境が起動しているかは WEBのポータル画面で確認できます。 ・インスタンスの「状況」が「アクティブ」になっていればOSが起動しています。 ・AIX環境にログインし、ロケールが変更できていることを確認します。 # locale LANG=JA_JP LC_COLLATE="JA_JP" LC_CTYPE="JA_JP" LC_MONETARY="JA_JP" LC_NUMERIC="JA_JP" LC_TIME="JA_JP" LC_MESSAGES="JA_JP" LC_ALL= JA_JP:UTF-8に変更できました! smit の出力が日本語になったか確認しておきます。 # smit 日本語で表示されるようになりました! 日本語のsmit。落ち着きます。 ソフトウェアを導入する前に日本語化しておけばよかったです。。 ※ソフトウェアを導入したブログはこちら 【やってみた】IBM Power Virtual Server のAIX環境にSWを導入してみた   次のブログでは、AIXインスタンスのバックアップ手順をご紹介します。 【やってみた】IBM Power Virtual Server のAIX環境をバックアップしてみた Part.1   最後に テレワークが本格的になり、あっという間に1年が経過しました。 1年前は、Power Virtual Server は私にとって全く身近でなく、お客様からの問い合わせも殆どありませんでしたが、今はぐっと身近なクラウドになり、問い合わせ件数は確実に増加しています。 アフターコロナではどんな生活様式が当たり前になっているのか、まだ全く想像できませんが、変化の速い Power Virtual Server の1年後も想像できません。 ただ、Power Virtual Server が AIX や IBM i ユーザの更改先として有力候補になってくる日は近いだろうなと感じます。   お問い合わせ この記事に関するご質問は下記までご連絡ください。 エヌアイシー・パートナーズ株式会社 技術支援本部 E-Mail:nicp_support@NIandC.co.jp  

2021年05月26日

【てくさぽBLOG】IBM Power Virtual ServerのAIX環境にSWを導入してみた

こんにちは。 てくさぽBLOGメンバーの村上です。 本ブログは、IBM Power Virtual Server をトライしてみた内容や感想をご紹介するブログです。   シリーズ化していますので、まずインデックスのご紹介をします。 インデックス ・IBM Power Virtual ServerでAIX環境を作ってみた ・IBM Power Virtual ServerのAIX環境にSWを導入してみた ← 本ページ ・IBM Power Virtual ServerのAIX環境を日本ロケールにしてみた ・IBM Power Virtual ServerのAIX環境をバックアップしてみた(Part.1) ・IBM Power Virtual ServerのAIX環境をバックアップしてみた(Part.2) ・IBM Power Virtual ServerのAIX環境とIBM Cloud x86環境を接続してみた   本ページは Power Virtual Server のAIXインスタンスを作成し終わったところからのご紹介となり、以下の③~⑤のセクションをご紹介します。 1)  Power Virtual Server サービスの作成 2)  AIXインスタンス 作成 3)  AIXインスタンス 接続 4)  ストレージ・ボリュームの反映 5)  ソフトウェア導入 利用したクライアント端末(私のPC)は、Windows10 バージョン2004です。 3) AIXインスタンス接続 「2) AIXインスタンス作成」で作成したインスタンスに接続し、AIX環境にログインします。 <IBM Cloud からログアウトした状態からの説明です> ・IBM Cloud にログインし、画面左上の四本線「ナビゲーションメニュー」をクリックし、下部に表示される「リソース・リスト」をクリックします。      ・「Services」にPower Virtual Server のサービスが表示されますので、サービス名をクリックしてAIXインスタンス一覧の画面に移動します。 ※上記の出力例は、Power Virtual Server と同じタイミングで Watson Studio の検証も行っていたので、Watson Studioも「Services」に表示されています。 ・インスタンス名がリンクになっているので「AIX72-test」をクリックします。 インスタンスの詳細の画面に移動しました。 ・「サーバー詳細」の画面の右上にある「VMアクション」のプルダウンから「コンソールのオープン」を選択します。 ・AIXのコンソールが表示されます。 ・初期状態は、root ユーザでログインできてしまいます。 root ユーザでのログインはセキュリティ的に問題があるため、ログイン可能なAIXユーザを作成しパスワードを設定します。 そして、root ユーザではログインできないように設定変更しておきます。 ※ユーザ作成とroot ユーザの設定変更手順は省きます Power Virtual Server のポータルのコンソールは一定時間利用しないとタイムアウトになって接続が切れてしまいます。また、フォントや画面サイズを変更できないため出力が複数行に分かれてしまい使いにくいです。 そのため、次は、Power Virtual Serverのポータルのコンソールではなく、Tera Termや PuTTY などのターミナル・エミュレータ・ソフトウェアを利用してAIX環境にログインする方法を試します。 外からの接続になるので「外部IP」を利用します。 ・「ネットワーク・インターフェース」の項目に記載がある「外部IP」をコピーします。 以下はTeraTerm を使用した出力例です。 ・「ホスト」にコピーした外部IPをペーストし、プロトコルは「SSH」 を選択して「OK」をクリックします。 ・作成したユーザとユーザに設定したパスワードを入力し「OK」をクリックします。 外部IPを利用してAIX環境へのログインができました。 外部IPからの接続はパブリックネットワーク接続となり、イメージ図で表すと以下の赤線です。 ※上記の画像はIBMCloud柔らか層本(IBMサイト)から一部を抜粋しています。 (Version3.1_20210517 版) 4) ストレージ・ボリュームの反映 さて、この後、AIXインスタンスにソフトウェアを導入するので、ストレージ容量が足りなくなるかもしれません。ストレージ容量を増やしておきます。 「【やってみた】IBM Power Virtual Server でAIX環境を作ってみた」のブログで記載しましたが、AIXインスタンスは初期で20GBがrootvgにアサインされており、初期状態で既に15GB程度がシステムによって使用されているため、空き領域が5GB程度と少なくなっています。 インスタンス作成時に追加したストレージ・ボリューム「stg01」は、まだどの Volume Groupにも属しておらず、すぐに利用できる状態ではありません。 そのため、「stg01」をディスク領域として見えるように設定します。 ・「接続されているボリューム」の「stg01」を「ブート可能」にするため「オフ」の部分をクリックします。 ・確認画面になりますので「はい」をクリックします。 ブート可能設定に成功したメッセージが出力されます。 ・「ブート可能」のステータスが「オン」になっていることを確認します。 ・AIXインスタンスへログインし、物理ボリュームを認識させるコマンドを入力ます。 # cfgmgr ・設定前に現在のrootvg の容量を確認しておきます。 # lsvg rootvg 5,472MBの空きがあり、rootvg の容量は20GB(20,448MB)です。 ・ AIXインスタンスに認識されているPVを確認し、どのVGにも属していないhdisk0 を rootvg に割り当てます。 # lspv # extendvg rootvg hdisk0 ・再度「# lspv」コマンドを入力し、hdisk0がrootvgに追加されたことを確認します。 # lspv ・実際に容量が変更されたか確認します。 # lsvg rootvg 20GBだった rootvgに 10GBの「stg01」を追加したので、容量が30GB(30,656MB) になり、空き容量も15,680MBに増えました。 5) ソフトウェア導入 では、AIXインスタンスにソフトウェアを導入してみます。 簡単に導入できるコンパイラー「XL C/C++ v16.1(IBMサイト)」を入れることにしました。 XL C/C++導入作業前にやっておいたこと ・「システム前提条件」を読んでおきます ・XL C/C++ソフトウェアをダウンロードします。ソフトウェアは「60日間のFreeトライアル版」を利用しました。 ・XL C/C++ソフトウェアをAIX環境へ転送するツールをインストールしておきます。私はWinSCPをダウンロードしました。コマンドプロンプトでSFTP転送を実施してもOKです。 ・AIX環境上にXL C/C++ソフトウェアを展開して保管するためのファイルシステムを作成します(1GBの/work というファイルシステムを作成しました)。 ----------------------------------------------------------------------------------------------------------------------------------------------- ソフトウェア導入前のAIX環境の確認と設定を行います。 ・OSレベルの確認(サポートされているレベルか確認) # oslevel -s 7200-05-01-2038 ・必須ファイルセットの確認(ファイルセットが導入されているか確認) # lslpp -L bos.adt.include bos.adt.lib bos.adt.libm bos.loc.\* bos.rte bos.rte.libc ・導入先「/opt」ファイルシステムの拡張(500MBの空きが必要) # df -m /opt Filesystem    MB blocks      Free %Used    Iused %Iused Mounted on /dev/hd10opt     384.00     41.54   90%    11471    52% /opt # chfs -a size=+500M /opt Filesystem size changed to 1835008 # df -m /opt Filesystem    MB blocks      Free %Used    Iused %Iused Mounted on /dev/hd10opt     896.00    553.46   39%    11471     9% /opt 「/opt」ファイルシステムが41.54MBの空き容量だったので、500MB 拡張しました。 ・ローカルPCにダウンロードしておいたXL C/C++ソフトウェアを、AIX環境にアップロードします。アップロード先は事前に作成したファイルシステム/work です。 ファイル転送はWinSCPを利用して行いました。 ・AIX環境へのファイル転送が完了したら、AIX上で圧縮ファイルを解凍(展開)します。 # cd /work # ls -al total 564784 drwxrwxrwx    3 root     system          256 Jan 25 03:51 . drwxr-xr-x   21 root     system         4096 Jan 11 20:26 .. -rw-r--r--    1 fumi     grp01     289164548 Jan 07 00:05 IBM_XL_C_CPP_V16.1.0.0_AIX_EVAL.tar.Z drwxr-xr-x    2 root     system          256 Jan 25 03:44 lost+found # uncompress IBM_XL_C_CPP_V16.1.0.0_AIX_EVAL.tar.Z  # ls -al | grep XL -rw-r--r--    1 fumi     grp01     307650560 Jan 07 00:05 IBM_XL_C_CPP_V16.1.0.0_AIX_EVAL.tar # tar -xvf IBM_XL_C_CPP_V16.1.0.0_AIX_EVAL.tar これでソフトウェア導入前の事前準備が整いました。 あとはsmitで XL C/C++ を導入するだけです。 # cd /work/XLC_C/usr/sys # smit install_latest License agreement → YES 簡単に導入できました! ストレージ・ボリュームを追加する手順が Power Virtual Server 独自ではありますが、オンプレミスの環境にストレージを追加することを想像したら・・Power Virtual Server の方が遥かにスピーディーで簡単です。   ところで、ソフトウェアを導入している時に気付いてはいたのですが、なんだか smit が使いにくいと思ったら、smit を英語表記のまま利用していました。久しぶりに smit を使ったのでロケールを日本語化することを忘れていました。 次のブログでは、言語環境(ロケール)を日本語にした手順をご紹介します。↓ 【やってみた】IBM Power Virtual Server のAIX環境を日本ロケールにしてみた   最後に Power Virtual Server のポータルWEB画面は使いやすいですが、あくまでも基盤(IaaS)を用意するまでの支援で、細かい設定はAIX環境内で実施しなくてはいけないことが分かりました。 そして、じっくり読んでいただいた方はお気付きかもしれませんが、XL C/C++ はソフトウェア保管先を含めても1.5GB程度の容量があれば導入できるので、ストレージ・ボリュームを拡張する必要がありませんでした・・。 せっかく追加したストレージ・ボリュームで、かつ、月400円程度(10GB)の課金ではありますが、不要なので削除しました。 必要ないリソースをすぐに削除できるのは、検証環境には大変ありがたい機能です。 ストレージ・ボリューム削除の手順は、また後日アップデートしたいなと思っています。   お問い合わせ この記事に関するご質問は下記までご連絡ください。 エヌアイシー・パートナーズ株式会社 技術支援本部 E-Mail:nicp_support@NIandC.co.jp   参考情報 IBM Power Virtual Server (製品情報)  

2021年05月25日

【てくさぽBLOG】「IBM Think 2021」に参加した ~デジタル世紀への本格参入~

こんにちは。てくさぽBLOGメンバーの山田です。 今年も「IBM Think」に参加しました。 昨年同様、IBM 独自の Watson Media を利用したデジタル開催でしたが、今年はアジア地域の時間帯に合わせた配信や機械翻訳に加え日本語同時通訳付きセッションもあり、年々参加しやすくなっています。 6月23日まで Think 2021 オンデマンドでセッションが視聴可能です。 「Think 2021 / Partner Experience at Think (IBMサイト)」(※IBM IDが必要となります)   AIは、驚異的な量のデータの意味を理解できる唯一の方法 昨年4月に CEO に就任後初めて本格的に昨年度の成果や次の方針を伝える場となるクリシュナ氏の基調講演では、昨年から方針は変わらず、キー・テクノロジーであるハイブリッド・クラウドと AI へ更に注力し、より具体的な新しいソリューションとして以下の発表がありました。 IBM Watson Orchestrate AutoSQLのICP4Dへの組み込み Project CodeNet 昨年はバンキング・ヘルス・テレコムなどインダストリー色の強い発表が多くありましたが、今年は製品・サービスでの発表が色濃いとという印象でした。 クリシュナ氏のメッセージは、 "工場や機械に電力が供給されてきたように、あらゆるソフトウェアに AI を活用したインテリジェントが組み込まれていく、そして、依然としてスキルと専門知識の欠如が AI採用の障壁となっている状況に対する解決策を IBM は提供していく" というものでした。   エンドユーザの活動を自動化・省力化するソリューション 「IBM Watson Orchestrate」 IBM Watson Orchestrate は、IBM としては珍しい、エンドユーザの活動を自動化・省力化するインタラクティブな AIソリューションとして発表されました。 IBM が Watson として培った自然言語処理をベースとした AIテクノロジーにより、Salesforce、SAP、Workday などの一般的なビジネスアプリケーションや、チャット、カレンダー、メールなどの標準的なコラボレーションツールと連携可能で、最大50%の時間を取り戻すことができると言います。 会議スケジュール調整や承認などの日常業務で、AI が適切なアラートや分析結果を指示し、提案書作成などまさに個人の生産性を向上させることが具体的にイメージできるソリューションです。 これは、昨年の Think で発表された、汎用的に AI を適用し易い IT運用の自動化にフォーカスしたソリューションであった IBM Watson AIOps に対し、よりオフィスワークへ AI適用範囲を拡大し、営業や人事・オペレーションなど、日常業務のあらゆる自動化へ組み込めるテクノロジーを提供することで、よりパートナー様がイメージできるソリューションであると感じました。 図1:IBM Watson Orchestrate の概念 単なるチャットボットやデジタルアシスタンスとは違うことは、デモ*をみていただいた方がイメージが沸くと思います。 デモページ:「Watson Orchestrate Demo (IBMサイト)」 上記のデモは日本語字幕がありませんが、Thinkオンデマンドのセッションでは日本語字幕もありお勧めです。 Thinkオンデマンド セッション:「Think 2021 (IBMサイト)」 Watson Orchestrate は、OpenShiftベースの IBM Cloud Pak for Business Automation の一部として未だプレビュー中ですが、2021年度中に提供開始予定です。   速度は8倍、コストは半分。 データ管理ソリューション「AutoSQL」 次に、AIベースのソリューション「AutoSQL」の紹介がありました。 AI の採用を拡大する際の課題の1つは、機械学習に必要なデータの管理です。 企業は、貴重な洞察につながる可能性があるデータを大量に保有していますが、パブリッククラウド、プライベートクラウド、オンプレミスなど複数の場所に分散されており、実現には膨大な労力とコストが掛かるのが現実でした。 実際 Cloud Pak for Data においても、日本のお客様からの要望の多くがデータカタログ化にあり、IBM は Information Management領域での知見を惜しみなく IBM Cloud Pak for Data に取り込んでいます。 今回発表された AutoSQL は、自動的にデータカタログを作成する「AutoCatalog」と合わせて活用されることが想定されますが、この実現により複数の場所に保管されているデータウェアハウスやストリーミングデータなど、異なるデータソースを移動させることなく同じクエリーで検索することができる高性能のユニバーサルクエリエンジンとなります。 IBM からの発表によれば、「以前の8倍の速度で、他の比較されたデータウェアハウスのほぼ半分のコスト」の効果があるそうです。 AutoSQL は、IBM Cloud Pak for Data の機能追加として提供される予定です。   OpenShiftが大きな鍵を握る、オープンへのこだわり IBM President であるハースト氏は、"より企業が競争に打ち勝つにはイノベーションが必須であり、オープンであることは戦略的なビジネス上の決定である" と語りました。 オープンとはオープンソースという意味に閉じず、オープンスタンダード、オープン組織、オープンカルチャーなど多岐にわたりますが、多くの場所で実行可能な「オープン」の実現には Red Hat OpenShift のテクノロジーがベースとなると述べています。 これは、IBM のハイブリッド・マルチクラウド戦略や、フォーカス製品である IBM Cloud Paks からも明確にメッセージされていますし、IBM は引続き OpenShift を軸にテクノロジー戦略を推し進める事に何も変わりはなく、ブレのない姿勢を強く印象付けたメッセージだったと感じました。 そのほか、量子コンピューティング IBM Quantum用コンテナ・サービスである Qiskit Runtime のスピード向上や、AI にソースコードを学習させるための大規模データセットである Project CodeNet のリリースなどが発表されました。 特に、Project CodeNet により、コードの別言語への翻訳や異なるコード間の重複と類似性の特定が可能となり、レガシーなコードから最新のコードへの移行などが期待できます。   パートナー・エコシステムへの更なる投資 パートナー・エコシステムへの取り組みについても、大きな発表としてメッセージされました。 IBMテクノロジーをわかりやすくお客様に届けるには、パートナー様との協業・共創が必要で、10憶ドルもの投資を行うとの発表がありました。従来型の販売(再販)に加え、ビルド、サービスといったパートナータイプが追加され、ISV・CSP といったソリューションベンダーへの支援プログラムもより拡大されるようです。 特に、クラウドエンゲージメントファンド (CEF) は、お客様のワークロードをハイブリッドクラウド環境に移行するのに役立つ重要な技術リソースとパートナー向けのクラウドクレジットへの投資です。 Think後の日本IBM の中でもこの発表は強く認識されており、IBMグローバルとして、よりパートナー協業を強く推し進める姿勢であり、支援を強化する動きが活発化していると感じます。   さいごに 今までにない経験であったこの1年で、10年分のデジタル革命が起きたと言われています。 そしてこれからも続くであろうこの進化を、引き続きパートナーの皆様へお届けしていきたいと思います。  

2021年05月24日

セキュリティ戦略の課題を解決する「ゼロトラスト」とは何か?ゼロトラスト・セキュリティを実現するIBM Security Verify

近年、企業の DX推進は活発化し、それにともない企業の IT環境も急激に変化・複雑化しています。 この変化に対応するセキュリティ対策のキーワードとして今、注目されているのが「ゼロトラスト」です。 本コラムでは、ゼロトラストのセキュリティ対策について解説。 さらに、多要素認証によりユーザー・アクセスを安全に簡素化することで、ゼロトラスト・セキュリティを実現する「IBM Security Verify」をご紹介します。   Index 今、セキュリティ対策の強化が注目されている理由 セキュリティ戦略は「境界防御」から「ゼロトラスト」へと変化 まず企業がすべきことは「守るべき要素」の洗い出し 情報セキュリティ対策強化の第一歩は「多要素認証」の導入から 多要素認証によりユーザー・アクセスを安全に簡素化するIBM Security Verify この記事に関するお問い合わせ 関連情報   今、セキュリティ対策の強化が注目されている理由 近年、DX に取り組んでいる日本企業の割合は急上昇し、クラウドシフトや場所を問わない柔軟な働き方が浸透しつつあります。さらに、2019年末から世界的に拡大した COVID-19 のパンデミックをきっかけに、日本企業のテレワーク実施率も急激に伸長しました。 これにともない、在宅勤務で使用する PC や社外で使用するモバイル端末、IoTデバイスを狙った攻撃の増加やクラウド環境での管理の煩雑さや設定ミスなど、新たなセキュリティリスクが増加しています。 企業はこれまでも既にセキュリティに関する備えをしてきました。しかし、急増する新たなセキュリティリスクに対応するためには、これまでのオンプレミスを前提とした現行の ITインフラや、「境界防御」を前提としたセキュリティ対策では、限界があることが指摘されています。 これらを背景に、今、企業は再度セキュリティ対策の見直しと強化をする必要に迫られているのです。   セキュリティ戦略は「境界防御」から「ゼロトラスト」へと変化 これまでのセキュリティ対策は、境界を設置して守るべき領域の「内部」と危険が潜む「外部」とに環境を分けて、その境界の「内部」に如何に侵入されないかという防御策が主流でした。 しかし、テレワーク環境で仕事をする人や Web会議、社内システム、コラボレーションなど、クラウドサービスの活用が増加した今、これらを利用するユーザーのアクセス場所やデータの保管場所は、境界の「外部」へと移っています。 そのため、従来の VPN接続を前提とした「境界防御」のセキュリティ対策だけでは、ランサムウェアやフィッシングなど、脆弱性を利用した標的型攻撃への対応は困難となり、被害発生時の影響範囲も拡大してしまいます。 この課題への対応として、今、もっとも注目されているキーワードが「ゼロトラスト」です。 「ゼロトラスト」とは、新たな発想に基づくセキュリティ対策の考え方で、防御の境界を定めません。同時に「内部=安全」「外部=危険」という承認ではなく、「信用せず、常に検証する」ことを基本とします。 つまり、ITシステムを利用するユーザーや場所、デバイスなどを無条件では信用せず、守る対象を定義し、それぞれについて認証を行い、アクセス権を設定することで、重要情報の安全を確保していくというセキュリティ対策の考え方です。 セキュリティ戦略も急速な変化への機敏な対応を余儀なくされている今、企業が見直しを迫られているのは、この「ゼロトラスト」へのシフトだといえます。   まず企業がすべきことは「守るべき要素」の洗い出し 「境界防御」から「ゼロトラスト」へとセキュリティ戦略のシフトが急がれているとはいえ、すべての対策を一気に始動することは、人的リソースの面でもコストの面でも困難です。 では、企業は何をするべきなのでしょうか? まず企業がすべきことは、自分たちが守るべき要素を洗い出すことです。「何から始め、どう守るか」を正しく理解するためにも、守るべき要素を洗い出すことがなにより重要です。 次に必要なことは、洗い出した要素の中から、自社にとってより効果的に対策を始めるための優先順位をつけることです。 ゼロトラストにおいて、企業にとって重要なもの、および守らなくてはいけない要素と対策例として、主に以下が挙げられます。 人 セキュリティルールの徹底、コンプライアンス研修 UBA (User Behavior Analytics) 認証情報 ユーザー名・パスワードの漏えい対策 二要素認証、生体認証、ワンタイムパスワード エンドポイント (PCやモバイル端末など) 資産管理、端末認証 アンチウイルス、マルウェア対策 OS やアプリケーションの脆弱性対応(パッチ適用) アプリケーション 脆弱性診断・管理 DevSecOps データ ログ取得・監査 権限管理・アクセス制限 暗号化   情報セキュリティ対策強化の第一歩は「多要素認証」の導入から クラウド利用が広がりテレワークも普及すると、セキュリティ対策を施さなければならない境界は広く複雑になります。 これに対して、「知っている人なら誰でも入ることができる」ユーザー名とパスワードだけでは、「本当に当社の社員なのか?」「特定の許可された人間なのか?」が判別できません。ログインした人を確実に判別する必要があります。 これに対し、非常に強固な認証システムとして注目されているのが「多要素認証」です。 「多要素認証」とは、ITリソースを利用するユーザーがユーザー名とパスワードを入力した後、登録された携帯電話に SMS でワンタイムパスワードを送ってくる「二要素認証」や、人の眼・指紋・静脈など、本人しか持ち得ない肉体的な要素を活用して認証する「生体認証」を複合的に組み合わせて確認することです。 これにより、特定の人固有の情報を利用して追加で認証を行うため、非常に効果的に「認証基盤の強化」を実現することができます。 「認証基盤の強化」が実現すれば、その後工程にあるアクセス制御やエンドポイント・セキュリティ対策もシンプルかつ容易になります。したがって、「ゼロトラスト」シフトのセキュリティ戦略の第一段階として、この「多要素認証」の導入から始めることをお勧めします。   多要素認証によりユーザー・アクセスを安全に簡素化するIBM Security Verify 企業内外のすべてのユーザーとデバイスを、オンプレミス/クラウド上のあらゆるアプリケーションに安全に接続し、単一のプラットフォームでシンプルに管理できるのが「IBM Security Verify」です。 「IBM Security Verify」は、IBM が約20年間にわたりオンプレミス版で培った技術と実績をクラウドサービスとして展開し、2021年4月からは日本のデータセンターからサービス提供を開始しています。 これにより、オンプレミス環境はもちろん、ハイブリッド/マルチ・クラウド環境に対応したスマートID を日本のお客様に提供できるようになりました。 Security Verify の最大の特長は、AI を搭載したリスク・ベースの多要素認証による「IAM (ID・アクセス管理) プラットフォーム」を提供していることです。 これにより、「誰が何にアクセスできるべきか」を決定するために AI の優れたコンテキストを活用することができるだけでなく、モダナイズ済みのモジュール形式の IAMプラットフォームであるため、容易に導入することが可能です。 また、モバイルを含む各種デバイスでシングルサインオンをすぐに始められるだけでなく、それぞれの企業のニーズに合った API優先アプローチを採用し、脅威管理とインシデント対応を包括するセキュリティワークフローと統合することもできます。   IBM Security Verify は、適応型アクセス制御機能によって、「多要素認証をどのタイミングでユーザーに求めるか?」について、コンテキストを用いた判断や実績のあるアルゴリズムの活用など、コグニティブを活用したリスク判断を行うとともに、各種攻撃への対応を実行してセキュリティの強化と利便性を両立させます。 さらに、アダプティブ・アクセス機能 (適応型アクセス制御) を搭載することで、セキュリティの強化と利便性を両立できることも Security Verify の大きな魅力です。 「ID のプロビジョニング/デプロビジョニング」、「アクセス権の正当性の確認」、「アカウントの突き合わせ」など、エンドツーエンドのユーザーライフサイクルを管理することで、「お客様のモバイルの生産性を妨げる障壁の解消」「リスクを認識する認証の確保」「すべてのプラットフォームへのアクセス管理」および「ID の正しい管理」を一括に実現します。 エヌアイシー・パートナーズでは、IBM Security Verify についての情報提供はもちろん、パートナー企業様がエンドユーザ様に対して行うご提案のサポートも行っております。 まずは、エヌアイシー・パートナーズにご相談ください。     この記事に関するお問い合わせ エヌアイシー・パートナーズ株式会社 企画本部 事業企画部 この記事に関するお問い合せは以下のボタンよりお願いいたします。 お問い合わせ   関連情報 IBM Security Verify (製品情報) - 企業内外のすべてのユーザーとデバイスをオンプレミス/クラウド上のあらゆるアプリケーションに安全に接続する単⼀のプラットフォームです。 【外部ページ】 IBM Security Verify for Workforce IAM (IBMサイト)   .btn_B{ height:25px; } .btn_B a{ display:block; width:100%; height:100%; text-decoration: none; background:#eb6100; text-align:center; border:1px solid #FFFFFF; color:#FFFFFF; font-size:16px; border-radius:50px; -webkit-border-radius:50px; -moz-border-radius:50px; box-shadow:0px 0px 0px 4px #eb6100; transition: all 0.5s ease; } .btn_B a:hover{ background:#f56500; color:#999999; margin-left:0px; margin-top:0px; box-shadow:0px 0px 0px 4px #f56500; } .bigger { font-size: larger; }  

2021年05月20日

【てくさぽBLOG】IBM Power Virtual ServerでAIX環境を作ってみた

こんにちは。 てくさぽBLOGメンバーの村上です。 本ブログは、IBM Power Virtual Server をトライしてみた手順や感想をご紹介するブログです。 IBM Power Virtual Serverの 正式名称は、 IBM Power Virtual Server on IBM Cloud です。 (※2021/7 追記:正式名称に変更があり「on IBM Cloud」の部分が削除されました) 一般的には、PowerVS や Virtual Server と略されているようなのですが、似たような略称が他にもあって混同してしまいそうです・・。 そのため、本ブログではあまり略さずに、Power Virtual Server と記載します。   これから何回かに分けて ブログをアップしていきますので、まずインデックスのご紹介です。 インデックス ・IBM Power Virtual ServerでAIX環境を作ってみた ← 本ページ ・IBM Power Virtual ServerのAIX環境にSWを導入してみた ・IBM Power Virtual ServerのAIX環境を日本ロケールにしてみた ・IBM Power Virtual ServerのAIX環境をバックアップしてみた(Part.1) ・IBM Power Virtual ServerのAIX環境をバックアップしてみた(Part.2) ・IBM Power Virtual ServerのAIX環境とIBM Cloud x86環境を接続してみた   構築手順をご紹介する前に、Power Virtual Server を簡単にご説明します。 Power Virtual Server とは? Power Virtual Server とは、IBM が提供するビジネス向けのクラウド 「IBM Cloud」とともに利用する、IBM の Power Systems を基盤として稼働しているLPAR環境です。 2021年5月現在、IBM Cloud には350個ものサービスがあるそうです。 以下に、 IBM Cloud と Power Virtual Server の歴史を簡単に纏めてみました。 2012年 IBMが買収したIaaS専門クラウド SoftLayer にてIaaSサービスを提供開始 2016年 SoftLayer に PaaS や SaaS のクラウドサービスを統合し、名称をBluemix に変更 2017年 Bluemix にAIの Watson が加わり、IBM Cloud としてブランド統合 2019年 Power Systems を基盤としたLPARサービス Power Virtual Server の提供開始 2020年 11月。東京データセンターにて 日本初、Power Virtual Server オープン IBM Cloud は、ここ10年も経たない間に、SoftLayer から Bluemix に。そして IBM Cloud と着々とパワーアップしています。 同様に、Power Virtual Server も新しい機能がどんどん追加されています。近い将来で、また大きな変化があるかもしれませんね。   それでは、本題に戻ります。 本ページでは、Power Virtual Server のAIX環境を作成するまでの手順を以下の2つのセクションに分けてご紹介します。 1)  Power Virtual Server サービスの作成 2)  AIXインスタンス 作成 利用したクライアント端末(私のPC)は、Windwos10 バージョン2004 です。 ちなみに、私は若かりし頃、基盤SEを数年間やっていましたが、遥か遠い昔のような気がする(本当に遠い昔)・・というくらいのSEスキルです。   1)  Power Virtual Server サービスの作成 まずPower Virtual Server のサービスの作成から取り掛かります。サービスの作成は無償です。 ・IBM Cloud へログインします。IBM Cloud の ID をお持ちでない方は新規登録が必要です。 Blackの背景にWhite文字、IBMっぽいですね。 ・ログイン後、画面のバーにある「カタログ」をクリックします。 ・カタログの画面で Power Virtual Server を選択します。検索バーに「Power」と入力すると「Power Virtual Server」が一番先頭に出てきますので「Power Virtual Server 」を選択します。 自動でサービスの作成画面に変わります。 ・Power Virtual Server で利用する「ロケーション」として「東京04(tok04)」を選択します。 2021年5月現在、Power Virtual Server は13か所のロケーションから選択できます。 私の自宅(テレワーク中です)は東京なので、一番近いロケーション「東京04(tok04)」を選択してみました。 ちなみに、日本には東京以外で大阪にもロケーションがあります。大阪は「Osaka21(osa21) 」として2021年3月にオープンしました。 ・ロケーションの選択ができたら、画面右側の「サマリー」を確認し「作成」をクリックしてサービスを作成します。       以下のメッセージが出力されますが、まだサービスの作成は完了していません。 画面は「リソース・リスト」に自動で変わり、数分待つとリソース・リストの「Services」の欄に「Power Virtual Server 」が追加されました。 サービスの「状況」が「●アクティブ」になったら、いよいよ「インスタンス作成」に移ることができます。 アクティブになったサービスの「名前」の部分はリンク付きになっているのでクリックし、次の作業「AIXインスタンス作成」に進みます。   <参考情報> 「Power Virtual Server サービス」はリージョン(地理環境)毎に作成し、「Power Virtual Server サービス」の中に「Power Virtual Server インスタンス」を作ります。 「インスタンス」とは 「LPAR(区画)」のことです。Power Virtual Server のサービス内には、複数の インスタンス(AIX/IBM i/LinuxどれでもOK)を作成することができます。 異なるリージョンにインスタンスを作成したい場合は、別の Power Virtual Server サービスを作成する必要があります。   2)  AIXインスタンス作成 「1) Power Virtual Server サービスの作成」でできた Power Virtual Server のサービス内にAIXインスタンスを作成します。 ・「インスタンスの作成」をクリックします。 ・「インスタンス名」に任意のインスタンス名を入力します。インスタンス名は「AIX72-test」にしました。作成するインスタンスは1つなので「インスタンスの数」が「1」になっていることを確認します。 「VMピン(IBMサイト)」は「オフ」のままでOKです。 VMピンは、IBM i の場合はオンにするか検討しますが、AIXではシリアルナンバー固定のソフトウェアは滅多にないので(今まで出会ったことがありません)、気にしなくて良さそうです。 ・SSH鍵の設定を行うため、「SSH鍵の作成」をクリックします。 ・Windows標準搭載の「コマンドプロンプト」をPC上で立ち上げ、「ssh-keygen」コマンドを利用してSSHの秘密鍵と公開鍵を作成します。 ※Windwos10の1803バージョンからsshクライアントが組み込まれ、特に設定を行わなくてもすぐsshを利用できるようになったようです。便利になりましたー。 # ssh-keygen -t rsa -b 4096 ・SSH秘密鍵「id_rsa」と公開鍵「id_rsa.pub」が作成できたことを、PC上で確認します。 ・「type」コマンドでSSH公開鍵の中身を表示し、公開鍵の文字列をコピーします。 # type . shh\id_rsa.pub AIXインスタンス作成のWEB画面に戻ります。 ・「鍵名」に任意のSSH鍵名を入力し(「my_ssh_pub」としました)、「公開鍵」には先ほどコピーした公開鍵の文字列をペーストします。 ・「SSH鍵の追加」をクリックします。 SSH鍵の追加ができたら、インスタンス設定WEB画面に戻ります。 ・先ほど追加したSSH鍵「my_ssh_pub」が「SSH鍵(オプション)」リストに追加されたので選択し「SSH鍵の作成」をクリックします。 以下のコメントが出力され、SSH鍵が正常に作成されました。 「ブート・イメージ」を選択します。 ・「オペレーティング・システム」は「AIX」を選択します。 ・「イメージ」は最新の「7200-05-01」を選択します。 ・「層」は「層3」を選択します。 「層」はストレージのタイプのことです。 層1:Tier 1 (NVMe-based flash storage) 層3:Tier 3 (SSD flash storage)                        で提供されています。 価格は、層1>層3 です。今回の検証ではディスク性能を求めませんので層3を選択しました。 Tier1とTier3は同一インスタンス内で同時に利用することはできず、インスタンス作成後にTierタイプを変更することはできません。インスタンス作成時の「層(Tier)」の選択は重要ですね。 「プロファイル」の設定画面です。 ・「マシンタイプ」は「S922」を選択します。 ・「プロセッサー」は3種類のタイプから選択できます。「上限なし共有」を選択します。 「マシンタイプ」は東京では「E980」or「S922」が選択可能です。同じリソースを選択した場合の価格は、E980>S922となります。S922は14コアまで利用できるので、余程の大きな環境でない限り、S922で良さそうです。ただし、IBM i の場合、S922 は 1LPAR 4core までです。 ・「コア」は「0.5」core、「メモリ」は「4」GBとします。 ※​今回のデモ環境構築としてのリソースはこれくらいあれば足りるかな・・と仮置きで決めました。 コアとメモリーはインスタンス作成後、柔軟に変更できます。 「ストレージ・ボリューム」の選択画面です。 ・「新規ストレージ・ボリューム」をクリックします。 AIXでは初期で20GBがrootvgに割り当てられており、ストレージを追加しなくてもインスタンスは作成できますが、後でソフトウェアを導入したいので、インスタンス作成段階で10GBを追加してみました。 ストレージ・ボリュームはインスタンス作成後でも追加できます。 ・「名前」に任意の名前「stg01」を入力します ・「サイズ」は「10GB」で、「数量」は「1」とします ・「作成して接続」をクリックします。 ・作成した「stg01」がリストアップされます。   「ネットワーク・インターフェース」の選択画面です。 ・「パブリック・ネットワーク」を「オン」にします。 既存のプライベート・ネットワークは持っていませんので、インターネット回線を利用したパブリック・ネットワークで検証を行います。 これでインスタンス作成前の全ての選択が完了しました。 ・「使用条件に同意する」に「✓」を入れ「インスタンスの作成」をクリックします。 ※このボタンをクリックすると課金が発生します。 さすがIBM!ストレージの料金が安いですね。 「インスタンスの作成」をクリックした後は自動で「リソース・リスト」の画面に戻ります。 暫く反応がなくてドキドキしますが、3~5分後にメッセージが出力され始めます。 インスタンスの「状況」が「ビルド」→「警告」→「アクティブ」に変わり、「アクティブ」になったらインスタンスの作成が完了です。 ・「名前」の「AIX72_test」の項目がリンクになっているのでクリックし、作成したインスタンスの「詳細」を確認します。 これで、AIXインスタンスの作成は完了です!   続きは、 【やってみた】IBM Power Virtual Server のAIX環境にSWを導入してみた でご紹介しています。 <続きの内容> ③ AIXインスタンス 接続 ④ ストレージ・ボリュームの反映 ⑤ ソフトウェア導入   最後に ここまでの作業は(SE歴が遠い昔)の私にも楽勝でした。 インスタンスが数分で作成できるのは、ちょっとした感動です。 今回の検証は、IBM Partner Package (IBMサイト)で提供されている IBM Cloud クレジットを利用しました。 定められているクレジット内(料金枠内)で Power Virtual Server のみではなく、IBM Cloud の様々なサービスを自由に使うことができます。 自分のIBM ID で Partner Package を利用する際は、企業とIBM IDの紐づけが必要になります。 手順が分からない、という方はご相談ください。   お問い合わせ この記事に関するご質問は下記までご連絡ください。 エヌアイシー・パートナーズ株式会社 技術支援本部 E-Mail:nicp_support@NIandC.co.jp     参考情報 IBM Power Virtual Server (製品情報)  

1 9 10 11 12 13 24
back to top