シャドウ・マイグレーションを使用してOracle Solaris 11にデータを移行する方法

Dominic Kay著

データ移行は、Oracle Solaris 11を採用する戦略の基本となる構成要素です。 この記事では、シャドウ・マイグレーションについて説明します。シャドウ・マイグレーションは、ユーザーがデータにアクセスできるようにオンライン状態にしておきながら、ファイル・システム間で大量のデータを移行するためのテクノロジーです。


2012年10月公開

Oracle Solaris 11以降、すべてのデータがデフォルトにより、ZFSファイル・システムに保存されます。 また、ZFSは、ブート、ルート・ファイル・システム、アップグレード、および更新など、その他のOracle Solaris 11の機能の大半にも対応します。

Oracle Technology Network(OTN)は、ユーザーがOracleテクノロジーについて学ぶことで、情報に基づく意思決定を行えるように支援するコミュニティです。 記事、ソフトウェア、ダウンロード、ドキュメントなどをご利用いただけます。 OTNに参加して、業務に必要な技術的リソースをぜひご活用ください。

データ管理の観点から、クラウドで必要とされるスケーラビリティやデータ管理の容易さといった領域だけでなく、暗号化、圧縮、重複排除、スナップショット、リモート・レプリケーションなど、コストのかからない多数のデータ・サービスが利用可能であるといった点において、ZFSへのデータ移行について強い主張を行うことができます。 これらのサービスは、Oracle Solaris 11全体の高可用性とパフォーマンスとともに、プラットフォーム上の統合を推進する強力な動機となります。

Oracle Solaris 11ではUFSファイル・システムを引き続き利用できますが(ルート・ファイル・システムとしては利用不可)、ZFSの方がストレージ・メカニズムとして望ましく、UFSよりはるかに高い信頼性と機能性を提供します。

シャドウ・マイグレーションについて

シャドウ・マイグレーションを使用すると、従来のファイル・システムからZFSファイル・システムにデータを移行できると同時に、移行プロセス中にデータにアクセスして変更を加えることができます。 シャドウ・マイグレーションを使用して、ローカル・ファイル・システムまたはリモート・ファイル・システムを別のローカル・ファイル・システムに移行できます。 具体的には、Oracle Solaris 11ホストに直接マウントできるファイル・システム(UFS、ZFS、VxFSなど)、または"読取り専用"に設定し、NFSを使用してOracle Solaris 11ホストにマウントできるリモート・ファイル・システムからデータを移行できます。 これは、NetAppなどのファイラや、AIX、HP-UX、Linuxなどの他のオペレーティング・システムにまで及びます。

シャドウ・マイグレーションの使用事例は、Oracle Solaris 11へのデータ移動に留まりません。 データを変換する必要のある圧縮、重複排除、および暗号化などのZFSサービスを有効にする場合に、既存のファイル・システムと新しいファイル・システム(名前は後で付ける)間でサーバー内のシャドウ・マイグレーションを実行することが、データ変換を達成する最善の方法になることがあります。

次に、シャドウ・マイグレーションのおもな設計要件を示します。

  • ソース・システムで特別なソフトウェアを実行しなくても、標準のデータ・プロトコル(NFS)を介して任意のデータソースから移行を実行できなければなりません。
  • 移行データは、移行全体が完了する前に利用可能で、ネイティブ・パフォーマンスでアクセスできる必要があります。
  • 一貫性を維持するため、ファイル・システムから移行するすべてのデータがファイル・システム自体に保存されている必要があり、外部データベースを使用することはできません (設計と実装について詳しくは、"関連項目"セクションの参考文献を参照)。

ユーザー自身で試すことができるシャドウ・マイグレーションの簡単な例を示します。 この例では、データをローカル・ファイル・システムから移行しますが、 これらの原則は、NFSを介してマウントされたリモート・ファイル・システムにも当てはまります。 リモート・ファイル・システム用の構文は管理マニュアルに記載されています("関連項目"のセクションを参照)。

最初に、移行するファイル・システムを作成します。

root@solaris:~# zpool create oldstuff c3t4d0 
root@solaris:~# zfs create oldstuff/forgotten 


次に、いくつかのファイルを保存します。

root@solaris:~# cd /var/adm 
root@solaris:/var/adm# find . -print | cpio -pdv /oldstuff/forgotten

リスト1に示すように、shadow-migrationパッケージをインストールする必要があります。

root@solaris:~# pkg install shadow-migration
           Packages to install:  1
       Create boot environment: No
Create backup boot environment: No
            Services to change:  1

DOWNLOAD                                  PKGS       FILES    XFER (MB)
Completed                                  1/1       14/14      0.2/0.2

PHASE                                        ACTIONS
Install Phase                                  39/39

PHASE                                          ITEMS
Package State Update Phase                       1/1 
Image State Update Phase                         2/2 

リスト1 shadow-migrationパッケージのインストール

次に、shadowdサービスを有効にします。


root@solaris:~# svcadm enable shadowd
root@solaris:~# svcs shadowd 
STATE        STIME     FMRI
online       7:16:09   svc:/system/filesystem/shadowd:default

移行するファイル・システムを読取り専用にします。

root@solaris:~# zfs set readonly=on oldstuff/forgotten


新しいZFSファイル・システムを作成して、shadowプロパティを、移行するファイル・システムに設定します。

root@solaris:~# zfs create -o shadow=file:///oldstuff/forgotten   mypool/remembered 

リスト2に示すように、shadowstat(1M)コマンドを使用して、移行の進捗状況を表示します。

root@solaris:~# shadowstat 
                                EST
                        BYTES   BYTES           ELAPSED
DATASET                 XFRD    LEFT    ERRORS  TIME
mypool/remembered       92.5M   -       -       00:00:59
mypool/remembered       99.1M   302M    -       00:01:09
mypool/remembered       109M    260M    -       00:01:19
mypool/remembered       133M    304M    -       00:01:29
mypool/remembered       149M    339M    -       00:01:39
mypool/remembered       156M    86.4M   -       00:01:49
mypool/remembered       156M    8E      -               (completed)

リスト2 移行の進捗状況の確認

上記で説明したように、/mypool/rememberedを暗号化して作成した場合、既存のデータを暗号化する方法として、この方法をお勧めします。 既存のデータを圧縮または重複排除する場合も同様です。

テストおよび注意事項

本番データを移行する場合、ライブ・マイグレーションの前にバックアップと徹底したテストを実施する必要があります。 特に、次の点に注意してください。

  • ユーザーは、異なる物理的場所にアクセスして、データにアクセスします。 ネーム・サービスとネットワーク・アドレス指定を修正して、ユーザーが"古い"データを変更しないようにする必要があります。この場合、データは読取り専用になり、エラーが返されます。
  • 所有権を管理するユーザー名とグループ名など、認証用のネーム・サービス・エントリをデータとともに移行する必要があります。
  • 場合によっては"古い"データセットと"新しい"データセットの両方をバックアップする必要のある、移行段階となります。
  • 特に、非ZFSをZFSに移行する場合は、メタデータと設定に特別な注意を払う必要があります。 特に、アクセス制御リスト(ACL)、拡張属性、および同様の設定はテストが必要です。
  • シャドウ・マイグレーションは、ファイル・システム間でデータを1対1で移動します。 多数のファイル・システムを少数のファイル・システムに統合する場合は、移行プロセスの別の段階で処理する必要となります。

パフォーマンス

シャドウ・マイグレーション機能のパフォーマンスは、次の点で左右されます。

  • データの性質(小さいファイルは、大きいファイルよりどうしても低速になる)
  • クライアントによる新しいデータへのアクセス・パターン
  • ソース・システムと移行先システムの相対的なディスク構成
  • ネットワーク・メディアのスループットと待機時間

シャドウ・マイグレーションの設計目標は、ユーザーにとって転送パフォーマンスが問題にならないようにすることであり、重要なことは、必要なデータに常に高速アクセスできるようにすることです。 ただし、古いメディアと新しいメディア間の本来の転送パフォーマンス自体が重要である場合は、シャドウ・マイグレーションを使用しない方がいい場合があります。シャドウ・マイグレーションは、高速化を図るためではなく、シームレスかつ"不可視な状態で"機能するように設計されているためです。

関連項目

Eric Schrockはブログの中で、シャドウ・マイグレーションの動機と設計、また、内部設計についても説明しています。 シャドウ・マイグレーションの正式な使用方法は、Oracle Solarisの管理: ZFSファイル・システムのマニュアルに記載されています。

その他のリソースは次のとおりです。

著者について

Dominic Kayは、Oracle SolarisのPrincipal Product Managerであり、Oracle Solarisのデータ管理テクノロジーに取り組んでいます。 Dominicは、Sun Microsystemsの買収に伴い、2010年にオラクルに入社しました。

リビジョン1.0、2012年10月22日

facebook banner twitter banner

false ,,,,,,,,,,,,,,,,