6 Oracle Blockchain Platformの管理

インスタンスをプロビジョニングしたら、Blockchain Platform Managerで管理できます。

インスタンスの詳細の表示

Blockchain Platform Managerでインスタンス名をクリックすると、インスタンス・タブが開き、インスタンスの詳細が表示されます。

インスタンスの詳細ページには、ログや台帳の場所などの情報の他、インスタンスの状態が表示されます。すべてのVMとそのステータスを表示することもできます。

パッチ適用ページには、インスタンスに適用されているパッチと、適用されていない入手可能なパッチが表示されます。

インスタンスはアクション・メニューから管理できますが、ブロックチェーン・ネットワークを管理するためにOracle Blockchain Platformサービス・コンソールを起動することもできます。

構成タブを開いて、LDAPおよびプラットフォーム構成のタブにアクセスします。LDAPまたはプラットフォーム構成は必要に応じて更新できます。LDAPでユーザーを作成し、そのユーザーIDで正常にログインした後、デフォルト・ユーザー(obpadmin)を無効にできます。

インスタンス・アクティビティの表示

アクティビティ・ページには、インスタンスに対して実行された操作のステータスが表示されます。

インスタンスのアクティビティを表示するには、インスタンス名を選択し、インスタンス・ページでアクティビティをクリックします。

このタブには、インスタンスに対して実行された操作(起動、停止、更新など)、それらが成功したかどうか、操作の時間、および操作を開始したユーザーIDがリストされます。

アクティビティ・ページでは、Blockchain Platform Managerによって管理されているすべてのインスタンスのアクティビティを表示およびフィルタできます。アクティビティ・ページでは、削除されたインスタンスを含む、すべてのインスタンスに対して実行された操作の履歴を表示できます。これらのアクティビティは、インスタンス名、操作タイプ、日付範囲などの様々な検索基準でフィルタできます。

インスタンスの起動または停止

Blockchain Platform Managerでインスタンスを起動または停止できます。

インスタンスを起動または停止するには:
  1. Blockchain Platform Managerで、インスタンスを見つけてその横にあるメニューを選択します。
  2. 起動または停止を選択します。選択内容を確認するよう求められます。

インスタンスの削除

Blockchain Platform Managerでインスタンスを削除できます。

インスタンスを削除するには:
  1. Blockchain Platform Managerを開き、インスタンスを見つけます。
  2. インスタンスの横にあるメニューから、終了を選択します。
  3. 操作を確認するよう求められます。確認をクリックします。

インスタンスのスケール・インまたはスケール・アウト

Blockchain Platform Managerでインスタンスをスケール・インまたはスケール・アウトできます。

スケール・アウト

新しいVM、レプリカまたはピアを作成することで、インスタンスをスケール・アウトできます:

  1. Blockchain Platform Managerでインスタンス名の横にあるメニューを開き、スケール・アウトをクリックします。
  2. 次のいずれかの方法を使用してスケール・アウトできます:
    • 新規VM: プラットフォーム・ホスト、チェーンコード・ホストまたはZooKeeper/Kafkaホストの指定されたロールで、クラスタに新しいVMを追加します。
    • 新規レプリカ: 追加ノードを追加します(RESTプロキシまたはCA)。
    • 新規ピア: ピアを一度に1つずつ追加します。

スケール・イン

ピアを削除してインスタンスをスケール・インできます。

インスタンスをスケール・インする前に、そのピアの役割をすべて稼働中の他のピアに移してから、そのピアが担っている役割を削除する必要があります。
  • 他のすべてのピアのゴシップ・ブートストラップ・アドレス・リストを確認し、ピアのアドレスを削除し、必要に応じて稼働中の別のピアのアドレスを追加します。ピア構成を変更したら、ピアを再起動します。
  • すべてのチャネルのアンカー・ピア・リストを確認し、アンカー・ピア・リストからピアを削除し、必要に応じて稼働中の別のピアをアンカー・ピア・リストに追加します。
  • チャネルまたはチェーンコードがそのピアでのみ参加またはインスタンス化される場合は、稼働中の別のピアを使用して同じチャネルに参加したり、同じチェーンコードをインスタンス化することを検討する必要があります。
  1. Blockchain Platform Managerでインスタンス名の横にあるメニューを開き、スケール・インをクリックします。
  2. 削除するピアのホスト名またはIPアドレスを入力します。複数のピアを削除するには、ピアの追加をクリックして他のピアの情報を入力します。

インスタンスへのパッチの適用

Blockchain Platform Managerおよびインスタンスには、Blockchain Platform Managerからパッチを適用できます。

パッチの登録

  1. support.oracle.comから目的のパッチをダウンロードします。
  2. パッチ・タブを開きます。
  3. パッチの登録をクリックして、ダウンロードしたパッチを選択します。

Blockchain Platform Managerへのパッチ適用

Blockchain Platform Managerパッチを利用できる場合は、インスタンスにパッチを適用する前に適用する必要があります。さもないと、データ・プレーンへのパッチ適用を実行するときに、まずコントロール・プレーンにパッチを適用するよう促す警告メッセージが表示されます。

  1. Blockchain Platform Managerパッチを利用できる場合は、右上隅のユーザー・メニューから開くことができる情報ダイアログにアップグレード・ボタンが表示されます。
  2. Blockchain Platform Managerのパッチ適用プロセスにより、Blockchain Platform Managerが自動的に再起動されます。再起動したら、キャッシュされたイメージおよびファイルをブラウザでクリーンアップし、Blockchain Platform Managerに再度ログインする必要があります。

パッチ適用後に作成された新規インスタンスは、いずれもアップグレード・レベルになります。「インスタンスへのパッチ適用」の説明に従って、既存のすべてのインスタンスにパッチを適用する必要があります。

インスタンスへのパッチ適用

インスタンスにパッチを適用する前に、Blockchain Platform Managerにパッチを適用しておく必要があります。

パッチ・パッケージには次が含まれます:

  • メタデータ・ファイル
  • パッチ適用中に実行される1つ以上のスクリプト
  • 様々なコンポーネントのDockerイメージ

Blockchain Platform Managerにより、パッチ・パッケージが抽出され、コンポーネントDockerイメージがDockerレジストリにプッシュされ、メタデータ・ファイルおよびスクリプトがローカル・データベースに格納されます。

パッチ・パッケージはローリング・パッチです。新しいパッチは常に、同じリリース内の古いパッチのスーパーセットです。

  1. パッチ・ページを開きます。適用する登録済パッチを選択して、適用をクリックします。パッチを適用するすべてのインスタンスを選択してをクリックし、発行をクリックします。
  2. パッチ適用は非同期操作です。インスタンスのアクティビティ・ペインで、リフレッシュをクリックして操作のステータスを定期的にチェックし、ステータスがSuccessfulに変わるまで待ちます。

パッチをロールバックするには

Blockchain Platform Managerで、次の操作を行います。
  1. インスタンス・タブで、インスタンスを選択してインスタンスの詳細ページを開き、パッチ・タブを選択します。
  2. ロールバックするパッチを選択し、ロールバックをクリックします。

パッチ適用後ステップ

インスタンスにパッチを適用した後、Blockchain Platform ManagerのUIが更新されない場合があります。ブラウザ・キャッシュをクリアしてBlockchain Platform Managerを再ロードし、更新されたページを確認してください。

パッチが適用されたインスタンスのロギングを構成する方法の詳細は、「移行されたインスタンス・ログ」を参照してください

インスタンスのバックアップ

ローリング・バックアップ手順を使用して、Oracle Blockchain Platform Enterprise Editionのインスタンスをバックアップできます。

次のステップでは、Oracle VM VirtualBox、またはVMのコンテンツをエクスポートおよびインポートできる同様の仮想化ツールを使用して、インスタンスをバックアップする方法について説明します。通常、システムの負荷が低いときに、メンテナンス・ウィンドウでインスタンスのバックアップおよびリストアを行います。バックアップ手順が完了するまで、サービス・コンソールで管理アクションを実行しないでください。

次の手順では、Oracle VM VirtualBoxを使用して、同じホスト・システムにVMイメージをインポートすることを前提としています。VMイメージを別のホストシステムにリストアする場合は、追加のステップが必要になることがありますが、このトピックでは説明していません。

一般的な高可用性のシナリオの場合、通常の操作に影響を与えずにライブ環境でインスタンスをバックアップするには、構成が次の要件を満たしている必要があります:
  • インスタンスはエンタープライズ構成を使用しており、少なくとも3つのOracle Blockchain PlatformホストVM、3つのKafkaホストVM、および3つのチェーンコード・ホストVMが含まれます。これらのホストとは別に、Blockchain Platform Managerを別のホストVMにインストールする必要があります。
  • インスタンスには、サイズ設定および使用状況に基づいて、十分な数のピアおよびオーダラのサービス・インスタンスがあります。通常、プラットフォーム・ホストごとに少なくとも2つのピアと1つのオーダラが必要です。
  • すべてのプラットフォーム・ホスト、Kafkaホストおよびチェーンコード・ホストは異なるコンピュータに配置され、各タイプの少なくとも1つのホストは異なるリージョンにあります。
  • インスタンスは、他のサービス・インスタンスが停止したときに、アクティブなサービス・インスタンスにリクエストをルーティングするように構成された外部ロード・バランサを使用します。外部ロード・バランサは別のVMで実行されており、バックアップ・プロセス全体で使用可能である必要があります。外部ロード・バランサが使用できない場合、最初のプラットフォーム・ホストがバックアップのために停止するときに停止時間が発生します。
  • インスタンスで使用されるアプリケーションは、失敗したトランザクションを再試行するように構成されています。プラットフォーム・ホストまたはチェーンコード・ホストが使用できない場合、RESTプロキシまたはSDKを使用してトランザクションを実行するときに断続的な障害が発生する可能性があります。トランザクションが失敗した場合、アプリケーションは、トランザクションが成功するまで、別のプラットフォーム・ホストまたはチェーンコード・ホストでトランザクションを再試行する必要があります。
  • 認証サーバーはインスタンスの外部にあり、可用性が高くなるように構成されます。この手順の一環として、認証サーバーはバックアップされません。
  1. チェーンコード・ホストを一度に1つずつバックアップします。
    1. 1つのチェーンコード・ホストを停止し、他のすべてのチェーンコード・ホストが引き続き実行中であることを確認します。
    2. 停止したホストのVMコンテンツをエクスポートします。Oracle VM VirtualBoxで、「ファイル」を選択し、アプライアンスのエクスポートを選択します。「形式」で、オープン仮想化形式1.0を選択します。バックアップを同じシステムにリストアする場合は、ネットワーク・アダプタのMACアドレスを保持するためにMACアドレス・ポリシーを指定します。
    3. チェーンコード・ホストを起動します。
    4. 他のすべてのチェーンコード・ホストについて、前のステップを繰り返します。
  2. Kafkaホストを一度に1つずつバックアップします。
    1. 1つのKafkaホストを停止し、他のすべてのKafkaホストが引き続き実行中であることを確認します。
    2. 停止したホストのVMコンテンツをエクスポートします。Oracle VM VirtualBoxで、「ファイル」を選択し、アプライアンスのエクスポートを選択します。「形式」で、オープン仮想化形式1.0を選択します。バックアップを同じシステムにリストアする場合は、ネットワーク・アダプタのMACアドレスを保持するためにMACアドレス・ポリシーを指定します。
    3. Kafkaホストを起動します。
    4. docker psコマンドを使用して、KafkaおよびZookeeperのコンテナがVMで正常に実行されていることを確認します。
    5. 他のすべてのKafkaホストについて、前のステップを繰り返します。
  3. サービス・コンソールの「ノード」タブで、「その他のアクション」アイコンをクリックして、各プラットフォーム・ホストで実行中のピア・ノードおよびオーダラ・ノードを確認します。次のステップで使用するためにこの情報を記録し、プラットフォーム・ホストを一度に1つずつバックアップします。
    1. サービス・コンソールまたはREST APIを使用して、最初のプラットフォーム・ホスト上のピア・ノードおよびオーダラ・ノードを停止します。
    2. プラットフォーム・ホストを停止し、他のすべてのプラットフォーム・ホストが引き続き実行中であることを確認します。
    3. 停止したホストのVMコンテンツをエクスポートします。Oracle VM VirtualBoxで、「ファイル」を選択し、アプライアンスのエクスポートを選択します。「形式」で、オープン仮想化形式1.0を選択します。バックアップを同じシステムにリストアする場合は、ネットワーク・アダプタのMACアドレスを保持するためにMACアドレス・ポリシーを指定します。
    4. プラットフォーム・ホストを起動します。
    5. プラットフォーム・ホストで実行されていたピア・ノードおよびオーダラ・ノードを起動します。
    6. ピア・ノードおよびオーダラ・ノードが正常に実行されていることを確認します。
    7. 他のすべてのプラットフォーム・ホストについて、前のステップを繰り返します。
  4. Blockchain Platform Managerをバックアップします。
    1. Blockchain Platform Managerホストを停止します。
    2. 停止したホストのVMコンテンツをエクスポートします。Oracle VM VirtualBoxで、「ファイル」を選択し、アプライアンスのエクスポートを選択します。
    3. Blockchain Platform Managerホストを起動します。
バックアップ手順の途中でホストVMを停止すると、RESTプロキシによって返された次のタイプの断続的な障害が表示される場合があります。
  • チェーンコード・ホストが停止すると、次のようなエラーが返されることがあります。
    {
    "returnCode": "Failure",
    "error": "Transaction processing for endorser [<Host FQDN>:15036]: Chaincode status Code: (500) UNKNOWN. Description: failed to execute transaction f04fa964c4eae9387d2f97887a3558118412b0c6b76a33d75f17572c37c20918: error sending: timeout expired while executing transaction",
    "result": null
    }
  • チェーンコード・ホストの再起動時に、次のようなエラーが返されることがあります。
    {
    "returnCode": "Failure",
    "error": "Transaction processing for endorser [<Host FQDN>:15039]: Chaincode status Code: (500) UNKNOWN. Description: failed to execute transaction 7dbb9966b40ecb07b811dc2e6a23cea899e791f4eeb80d5e1b15daa10350aa6a: [channel mychan2] could not launch chaincode obcs-example02:v0: error starting container: error starting container: Post https://<HOST FQDN>:2376/containers/create?name=dev-6aae07b4-779c-4752-bcb9-4df010503168-peer3-obcs-example02-v0: dial tcp <IP Address>:2376: connect: no route to host",
    "result": null
    }
  • また、次の2つの例のように、一時的なタイムアウト・エラーが発生することがあります。
    {
    "returnCode": "Failure",
    "error": "Transaction processing for endorser [<External LBR FQDN>:15041]: Chaincode status Code: (500) UNKNOWN. Description: failed to execute transaction 7fb7f989a88ac3b068052ccd3f9acce555c6319d0cfe975fcfdd6a84b32fe421: error sending: timeout expired while executing transaction",
    "result": null
    }
    
    {
    "returnCode": "Failure",
    "error": "Failed to get endorsing peers: Discovery status Code: (11) UNKNOWN. Description: error getting endorsers: no endorsement combination can be satisfied",
    "result": null
    }

インスタンスのリストア

バックアップ手順を完了した後、正しく機能していない、または使用できないインスタンスをリストアできます。

次のステップでは、Oracle VM VirtualBox、またはVMのコンテンツをエクスポートおよびインポートできる同様の仮想化ツールを使用して、インスタンスをリストアする方法について説明します。バックアップからインスタンスをリストアする際には、インスタンスを完全に停止する必要があります。
  1. Oracle VM VirtualBoxを使用して、インスタンスによって使用されるすべてのプラットフォーム・ホスト、チェーンコード・ホストおよびKafkaホストを停止します。
  2. バックアップ・プロセス中にエクスポートしたVMコンテンツをインポートする際に名前の衝突が発生しないように、すべてのVMの名前を変更します。
    たとえば、すべてのVM名に接尾辞_backupを追加します。
  3. 一度に1つずつ、すべてのプラットフォーム・ホスト、チェーンコード・ホストおよびKafkaホストのバックアップ手順で作成した各VMイメージをインポートします(ただし、起動はしないでください)。
  4. 各プラットフォーム・ホストを起動し、すべてのプラットフォーム・ホストが正常に実行されていることを確認します。各ホストの完全修飾ドメイン名を指定したpingコマンドを使用して、すべてのプラットフォーム・ホストがネットワーク上で相互にアクセス可能であることを確認します。
    デフォルトでは、最初のプラットフォーム・ホストはDocker swarmリーダーです。他のプラットフォーム・ホストより前に、最初のプラットフォーム・ホストを起動します。
  5. 各チェーンコード・ホストを起動し、すべてのチェーンコード・ホストが正常に実行されていることを確認します。各ホストの完全修飾ドメイン名を指定したpingコマンドを使用して、すべてのチェーンコード・ホストとすべてのプラットフォーム・ホストがネットワーク上で相互にアクセス可能であることを確認します。
  6. 各Kafkaホストを起動し、すべてのKafkaホストが正常に実行されていることを確認します。各ホストの完全修飾ドメイン名を指定したpingコマンドを使用して、すべてのKafkaホストがネットワーク上で相互にアクセス可能であることを確認します。
  7. いずれかのプラットフォーム・ホストから、docker node lsコマンドを実行して、すべてのホストがアクティブでアクセス可能であることを確認します。ネットワーク内のすべてのホストは、ReadyのステータスとActiveの可用性を示す必要があります。すべてのホストがアクティブになり、準備が完了するまで、ネットワーク構成の完了を数分待つ必要がある場合があります。
  8. インスタンスのOracle Blockchain Platformコンソールにログインします。「ノード」タブで、すべてのオーダラ・ノード、次にすべてのピア・ノードを起動します。すべてのオーダラ・ノードおよびピア・ノードが正常に実行されていることを確認します。障害が発生した場合は、ログで詳細を確認します。通常、すべてのピア・ノードおよびオーダラ・ノードが正常に起動し、インスタンスが使用可能になります。
  9. Blockchain Platform Managerホストをリストアする必要がある場合は、現在のホストを停止して名前を変更してから、イメージ・バックアップをインポートして、ホストを再起動します。