15.4.5. SSH 経由で復元されたファイルにアクセスする
rsync、scp、または sftp により SSH 経由で復元された仮想マシン (VM) のファイルにアクセスするには、VirtualMachineFileRestore (VMFR) カスタムリソース (CR) を使用します。仮想マシンバックアップから効率的にファイルを転送できます。
SSH アクセスを設定すると、VMFR コントローラーにより SSH 鍵ペアが自動生成され、Kubernetes シークレットに保存されます。デフォルトの SSH ユーザー名は oadp です。SSH ファイルサーバーはポート 2222 でリッスンします。
復元されたファイルのリモートパスは、/restores/<date>/<backup_name>/<vm_name>/<path_to_file> という形式になります。
前提条件
-
cluster-adminロールでクラスターにログイン済みである。 -
fileAccess.sshセクションを設定したVirtualMachineFileRestore(VMFR) CR を作成済みである。 -
VMFR CR の
status.phaseがCompletedである。
手順
SSH アクセス情報を取得するために、次のコマンドを実行します。
$ oc get vmfr <vmfr_cr_name> -o jsonpath='{.status.fileServingInfo.ssh}' | jq<vmfr_cr_name>は、VMFR CR の名前に置き換えます。出力には、clusterAccessURL と、生成された SSH 鍵シークレットの名前と namespace を含むcredentialsSecretRefが含まれています。生成されたシークレットから秘密鍵を取得し、ファイルに保存します。
$ oc get secret <secret_name> -n <secret_namespace> -o jsonpath='{.data.privateKey}' | base64 -d > id-rsa<secret_name>と<secret_namespace>は、status.fileServingInfo.ssh.credentialsSecretRefフィールドの値に置き換えます。秘密鍵ファイルに適切な権限を設定します。
$ chmod 600 id-rsaVMFR の namespace に作成されたファイルサーバーサービスの名前を取得します。
$ oc get svc -n <created_namespace> | grep fileserver<created_namespace>は、VMFR CR のstatus.createdNamespaceフィールドの値に置き換えます。scpを使用してバックアップからファイルをコピーするには、次のコマンドを実行します。$ scp -P 2222 -i id-rsa \ -o StrictHostKeyChecking=no \ -o UserKnownHostsFile=/dev/null \ oadp@<fileserver_svc>.<created_namespace>.svc.cluster.local:<remote_path> \ <local_destination>各項目の説明:
<fileserver_svc>- ファイルサーバーサービスの名前を指定します。
<created_namespace>-
status.createdNamespaceフィールドの namespace を指定します。 <remote_path>-
ファイルのパスを
/restores/<date>/<backup_name>/<vm_name>/<path_to_file>という形式で指定します。 <local_destination>- 復元されたファイルを保存するローカルファイルパスを指定します。
対話型の SFTP セッションを開始するには、次のコマンドを実行します。
$ sftp -P 2222 -i id-rsa \ -o StrictHostKeyChecking=no \ oadp@<fileserver_svc>.<created_namespace>.svc.cluster.local