8.2. ボリュームの直接移行のための Rsync 設定


MTC のボリュームの直接移行 (DVM) は、Rsync を使用して、2 つの PV 間の直接接続により、ソースとターゲットの永続ボリューム (PV) 間でファイルを同期します。

Rsync は、ファイルやディレクトリーをローカルおよびリモートの宛先に転送できるコマンドラインツールです。

DVM で使用される rsync コマンドは、クラスターが期待どおりに機能するように最適化されています。

MigrationController CR は、ボリュームの直接移行で rsync_options を設定するために、次の変数を公開します。

Expand
変数デフォルト値説明

rsync_opt_bwlimit

int

設定されていません

正の整数に設定すると、Rsync コマンドに --bwlimit=<int> オプションが追加されます。

rsync_opt_archive

bool

true

Rsync コマンドの --archive オプションを設定します。

rsync_opt_partial

bool

true

Rsync コマンドの --partial オプションを設定します。

rsync_opt_delete

bool

true

Rsync コマンドの --delete オプションを設定します。

rsync_opt_hardlinks

bool

true

Rsync コマンドの --hard-links オプションを設定します。

rsync_opt_info

string

COPY2

DEL2

REMOVE2

SKIP2

FLIST2

PROGRESS2

STATS2

Rsync Pod で詳細なロギングを有効にします。

rsync_opt_extras

string

空白

その他の任意のオプション用に予約されています。

  • 上記の変数を使用して設定したオプションの設定は、すべての移行に対して グローバル に適用されます。Operator が MigrationController CR を正常に調整するとすぐに、この設定は今後のすべての移行に対して有効になります。進行中の移行では、現在のステップに応じて、更新された設定を使用できます。したがって、移行を実行する前に設定を適用することが推奨されます。ユーザーは必要に応じていつでも設定を更新できます。
  • rsync_opt_extras 変数は慎重に使用してください。この変数を使用して渡したオプションはすべて、rsync コマンドに追加されます。複数のオプションを指定する場合は必ず空白を追加してください。オプションの指定にエラーがあると、移行が失敗する可能性があります。ただし、MigrationController CR は、将来の移行に必要な回数だけ更新できます。
  • rsync_opt_info フラグをカスタマイズすると、MTC の進捗レポート機能に悪影響を与える可能性があります。ただし、進捗レポートを削除すると、パフォーマンス上の利点が得られる場合があります。この方法は、Rsync 操作のパフォーマンスが許容できない場合にのみ使用してください。
注記

DVM で使用されるデフォルト設定は、さまざまな環境でテストされています。クラスターが正常でパフォーマンスが良好であれば、ほとんどの実稼働環境のユースケースで許容されます。これらの設定変数は、デフォルト設定が機能せず、Rsync 操作が失敗した場合に使用する必要があります。

8.2.1. Rsync Pod のリソース制限設定

MigrationController CR は、Rsync のリソース使用に関する要件と制限を設定するために、次の変数を公開します。

Expand
変数デフォルト説明

source_rsync_pod_cpu_limits

string

1

ソース rsync Pod の CPU 制限

source_rsync_pod_memory_limits

string

1Gi

ソース rsync Pod のメモリー制限

source_rsync_pod_cpu_requests

string

400m

ソース rsync Pod の CPU 要求

source_rsync_pod_memory_requests

string

1Gi

ソース rsync Pod のメモリー要求

target_rsync_pod_cpu_limits

string

1

ターゲット rsync Pod の CPU 制限

target_rsync_pod_cpu_requests

string

400m

ターゲット rsync Pod の CPU 要求

target_rsync_pod_memory_limits

string

1Gi

ターゲット rsync Pod のメモリー制限

target_rsync_pod_memory_requests

string

1Gi

ターゲット rsync Pod のメモリー要求

8.2.1.1. Rsync Pod の補足グループの設定

永続ボリューム要求 (PVC) が共有ストレージを使用している場合、Pod がアクセスを許可するように Rsync Pod 定義に補足グループを追加することで、ストレージへのアクセスを設定できます。

Expand
変数デフォルト説明

src_supplemental_groups

string

設定されていません

ソース Rsync Pod の補足グループのコンマ区切りリスト

target_supplemental_groups

string

設定されていません

ターゲット Rsync Pod の補足グループのコンマ区切りリスト

たとえば、MigrationController CR を更新して上記の値を設定できます。

spec:
  src_supplemental_groups: "1000,2000"
  target_supplemental_groups: "2000,3000"
Copy to Clipboard Toggle word wrap

8.2.1.2. Rsync の再試行設定

Migration Toolkit for Containers (MTC) 1.4.3 以降では、失敗した Rsync 操作を再試行する新しい機能が導入されています。

デフォルトでは、移行コントローラーは、すべてのデータがソースボリュームからターゲットボリュームに正常に転送されるか、指定した再試行回数に達するまで、Rsync を再試行します。デフォルトの再試行回数の上限は 20 に設定されています。

ボリュームが大きい場合、再試行回数の上限が 20 では不十分な場合があります。

MigrationController CR で次の変数を使用して、再試行回数の上限を引き上げることができます。

apiVersion: migration.openshift.io/v1alpha1
kind: MigrationController
metadata:
  name: migration-controller
  namespace: openshift-migration
spec:
  [...]
  rsync_backoff_limit: 40
Copy to Clipboard Toggle word wrap

この例では、再試行回数の上限が 40 に引き上げられます。

8.2.1.3. root または非 root として Rsync を実行する

OpenShift Container Platform 環境では、PodSecurityAdmission コントローラーがデフォルトで有効になっています。このコントローラーでは、クラスター管理者がネームスペースラベルを使用して Pod セキュリティー標準を適用する必要があります。クラスター内のすべてのワークロードは、次の Pod セキュリティー標準レベルのいずれかを実行することが期待されます: PrivilegedBaseline または Restricted。すべてのクラスターには、独自のデフォルトポリシーセットがあります。

すべての環境で正常なデータ転送を保証するために、Migration Toolkit for Containers (MTC) 1.7.5 では Rsync Pod に変更が導入されました。これには、デフォルトで非ルートユーザーとして Rsync Pod を実行することが含まれます。これにより、必ずしもより高い特権を必要としないワークロードでもデータ転送が可能になります。この変更が行われたのは、可能な限り低いレベルの特権でワークロードを実行するのが最善であるためです。

8.2.1.3.1. データ転送におけるデフォルトの非 root 操作の手動オーバーライド

ほとんどの場合、非 root ユーザーとして Rsync Pod を実行すると機能しますが、ソース側で root ユーザーとしてワークロードを実行すると、データ転送が失敗することがあります。MTC は、データ転送のデフォルトの非ルート操作を手動でオーバーライドする 2 つの方法を提供します。

  • すべての移行の宛先クラスターで Rsync Pod をルートとして実行するように、すべての移行を設定します。
  • 移行ごとに宛先クラスターで Rsync Pod をルートとして実行します。

どちらの場合も、移行前に、より高い権限でワークロードを実行している namespace のソース側に、enforceaudit、および warn のラベルを設定する必要があります。

Pod セキュリティーアドミッションとラベルの設定値の詳細は、Pod セキュリティーアドミッションの同期の制御 を参照してください。

8.2.1.3.2. すべての移行で MigrationController CR をルートまたは非ルートとして設定する

デフォルトでは、Rsync は非ルートとして実行されます。

宛先クラスターで、Rsync をルートとして実行するように MigrationController CR を設定できます。

手順

  • MigrationController CR を次のように設定します。

    apiVersion: migration.openshift.io/v1alpha1
    kind: MigrationController
    metadata:
      name: migration-controller
      namespace: openshift-migration
    spec:
      [...]
      migration_rsync_privileged: true
    Copy to Clipboard Toggle word wrap

    この設定は、今後のすべての移行に適用されます。

8.2.1.3.3. 移行ごとにルートまたは非ルートとして MigMigration CR を設定する

移行先クラスターでは、MigMigration CR を設定して、次の非ルートオプションを使用して、ルートまたは非ルートとして Rsync を実行できます。

  • 特定のユーザー ID (UID) として
  • 特定のグループ ID (GID) として

手順

  1. Rsync をルートとして実行するには、次の例に従って MigMigration CR を設定します。

    apiVersion: migration.openshift.io/v1alpha1
    kind: MigMigration
    metadata:
      name: migration-controller
      namespace: openshift-migration
    spec:
      [...]
      runAsRoot: true
    Copy to Clipboard Toggle word wrap
  2. Rsync を特定のユーザー ID (UID) または特定のグループ ID (GID) として実行するには、次の例に従って MigMigration CR を設定します。

    apiVersion: migration.openshift.io/v1alpha1
    kind: MigMigration
    metadata:
      name: migration-controller
      namespace: openshift-migration
    spec:
      [...]
      runAsUser: 10010001
      runAsGroup: 3
    Copy to Clipboard Toggle word wrap

8.2.2. MigCluster 設定

Migration Toolkit for Containers (MTC) で作成されたすべての MigCluster リソースに対して、MigCluster リソースが表すクラスター上の Migration Operator の namespace に、migration-cluster-config という名前の ConfigMap が作成されます。 

migration-cluster-config を使用すると、MigCluster 固有の値を設定できます。Migration Operator は、migration-cluster-config を管理します。 

MigrationController CR で公開されている変数を使用して、ConfigMap のすべての値を設定できます。

Expand
変数必須説明

migration_stage_image_fqin

string

いいえ

Stage Pod に使用するイメージ (IndirectVolumeMigration にのみ適用可能)

migration_registry_image_fqin

string

いいえ

Migration Registry に使用するイメージ

rsync_endpoint_type

string

いいえ

データ転送のエンドポイントのタイプ (RouteClusterIPNodePort)

rsync_transfer_image_fqin

string

いいえ

Rsync Pod に使用するイメージ (DirectVolumeMigration にのみ適用)

migration_rsync_privileged

bool

いいえ

Rsync Pod を特権付きとして実行するかどうか

migration_rsync_super_privileged

bool

いいえ

Rsync Pod をスーパー特権コンテナー (spc_t SELinux コンテキスト) として実行するかどうか

cluster_subdomain

string

いいえ

クラスターのサブドメイン

migration_registry_readiness_timeout

int

いいえ

Migration Registry Deployment の Readiness タイムアウト (秒単位)

migration_registry_liveness_timeout

int

いいえ

Migration Registry Deployment の Liveness タイムアウト (秒単位)

exposed_registry_validation_path

string

いいえ

MigCluster で公開されたレジストリーを検証するためのサブパス (例: /v2)

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat