(57)【要約】【課題】移行元ＮＡＳ装置と移行先ＮＡＳ装置との間での互換性を必要とせず、安価且つ安全に、ＮＡＳ装置間でのデータ移行を実現する。【解決手段】NAS装置2000の移行元ディレクトリ内の全てのデータを、NAS装置3000の移行先ディレクトリにコピーする。その間、NAS装置2000は、移行元ディレクトリに対するデータの追加／更新を受け付ける。そのコピー終了後、移行元ディレクトリに生じた差分に相当するデータのコピー（差分コピー）を実行する。差分コピーを、コピー所要時間が決められた時間を下回るまで継続する。NAS装置2000で、クライアント4000からのアクセスを停止して最後の差分データをNAS装置3000へコピーし、NAS装置3000で、クライアント4000からのアクセスの受付けを開始する。【選択図】図１
2008181461.tif 000002
【特許請求の範囲】
【請求項１】
第一のNAS装置から第二のNAS装置へのデータの移行を制御する装置であって、
第一のNAS装置の第一の記憶領域に格納されている全てのデータで構成された初期データ群を該第一の記憶領域からリードして第二のNAS装置の第二の記憶領域にライトする全コピーを行い、全コピー又は差分コピーが完了した後に、直前回の全コピー又は差分コピーによりリードされたデータ群との差分に相当する一以上のデータで構成された差分データ群を前記第一の記憶領域からリードして前記第二の記憶領域にライトする差分コピーを行うコピー実行部と、
少なくとも差分コピーが完了する都度に、データ確定条件に合致したか否かを判断し、前記データ確定条件に合致していれば、前記第一のNAS装置に前記第一の記憶領域に対するクライアント装置からのライトを抑止させ、最終回の差分コピーを前記コピー実行部に実行させるコピー制御部と
を備える制御装置。
【請求項２】
前記コピー制御部は、前記全コピー又は前記差分コピーであるコピーに要したコピー所用時間を計測し、
前記データ確定条件に合致するとは、前記計測されたコピー所要時間が予め決められた第一の閾値以下になることである、
請求項１記載の制御装置。
【請求項３】
前記コピー制御部は、前記最終回の差分コピーが完了した後、前記第二のNAS装置に対して、前記第一のNAS装置の前記第一の記憶領域に前記クライアント装置がアクセスするために必要な情報要素を前記第二のNAS装置に設定し、前記第二のNAS装置に対して前記クライアント装置からのアクセスの受け付けを開始させる、
請求項１記載の制御装置。
【請求項４】
前記コピー実行部が、各コピーにおいて、コピー対象のデータのスナップショットを前記第一のNAS装置に取得し、該スナップショットからデータをリードする、
請求項１記載の制御装置。
【請求項５】
前記初期データ群のサイズと、単位時間当たりに生じる差分データ群のサイズと、前記第一の閾値とを含む複数の情報要素の入力を受け付け、入力された前記初期データ群のサイズと、入力された単位時間当たりに生じる差分データ群のサイズとに基づいて、各回のコピー所要時間を推定し、推定されたコピー所要時間が入力された前記第一の閾値以下になった場合に、前記第一の閾値以下と推定されたコピー所要時間でのコピーを最終回のコピーとして、全コピーを開始していから最終回のデータコピーが終了するまでに要する移行期間を算出する見積もり部、
を更に備える請求項２記載の制御装置。
【請求項６】
前記コピー実行部が、所定の期間において許可された一以上の時間帯で前記コピーを実行するよう構成されており、
入力される前記複数の情報要素には、前記一以上の時間帯の長さが含まれ、
前記見積もり部が、前記一以上の時間帯に基づいて、前記移行期間を算出する、
請求項５記載の制御装置。
【請求項７】
前記第一のNAS装置に関する負荷を表す第一の負荷情報と前記第二のNAS装置に関する負荷を表す第二の負荷情報とのうちの少なくとも一方を取得する取得部、
を更に備え、
前記コピー制御部が、前記取得された負荷情報が表す負荷が第二の閾値を超えていれば、コピーの速度を遅らせる、
請求項１記載の制御装置。
【請求項８】
前記制御装置が、第一のNAS装置及び第二のNAS装置に接続された第三の装置であり、前記第一のNAS装置の第一の記憶領域と前記第二のNAS装置の第二の記憶領域をマウントするマウント部を更に備える、
請求項１記載の制御装置。
【請求項９】
前記制御装置が第二のNAS装置であり、前記第一のNAS装置の第一の記憶領域をマウントするマウント部を更に備える、
請求項１記載の制御装置。
【請求項１０】
前記第一の記憶領域は、第一のシェアディレクトリであり、
前記第二の記憶領域は、第二のシェアディレクトリであり、
前記コピー制御部は、前記全コピー又は前記差分コピーであるコピーに要したコピー所用時間を計測し、
前記データ確定条件に合致するとは、前記計測されたコピー所要時間が予め決められた第一の閾値以下になることであり、
前記コピー制御部は、更に、前記最終回の差分コピーが完了した後、前記第二のNAS装置に対して、前記第一のNAS装置のIPアドレス及びホスト名を前記第二のNAS装置に設定し、前記第二のNAS装置の前記第二のシェアディレクトリに対して前記クライアント装置からのアクセスの受け付けを開始させ、
前記差分データは、前記第一のシェアディレクトリに格納されているが前記第二のシェアディレクトリに格納されていないデータと、前記第一のシェアディレクトリ及び前記第二のシェアディレクトリの両方に格納されているデータであるが該データに関する属性が変更されたデータとのうちの少なくとも一方である、
請求項１記載の制御装置。
【請求項１１】
第一のNAS装置から第二のNAS装置へのデータの移行を制御する方法であって、
第一のNAS装置の第一の記憶領域に格納されている全てのデータで構成された初期データ群を該第一の記憶領域からリードして第二のNAS装置の第二の記憶領域にライトする全コピーを行い、
全コピー又は差分コピーが完了した後に、直前回の全コピー又は差分コピーによりリードされたデータ群との差分に相当する一以上のデータで構成された差分データ群を前記第一の記憶領域からリードして前記第二の記憶領域にライトする差分コピーを行い、
前記全コピー及び前記差分コピーの間、前記第一のNAS装置は前記第一の記憶領域に対するクライアント装置からのライトを受け付け、
少なくとも差分コピーが完了する都度に、データ確定条件に合致したか否かを判断し、前記データ確定条件に合致していれば、前記第一のNAS装置に前記第一の記憶領域に対するクライアント装置からのライトを抑止させ、最終回の差分コピーを実行する、
制御方法。
【請求項１２】
前記全コピー又は前記差分コピーであるコピーに要したコピー所用時間を計測し、
前記データ確定条件に合致するとは、前記計測されたコピー所要時間が予め決められた第一の閾値以下になることである、
請求項１１記載の制御方法。
【請求項１３】
前記最終回の差分コピーが完了した後、前記第二のNAS装置に対して、前記第一のNAS装置の前記第一の記憶領域に前記クライアント装置がアクセスするために必要な情報要素を前記第二のNAS装置に設定し、前記第二のNAS装置に対して前記クライアント装置からのアクセスの受け付けを開始させる、
請求項１１記載の制御方法。
【請求項１４】
各コピーにおいて、コピー対象のデータのスナップショットを前記第一のNAS装置に取得し、該スナップショットからデータをリードする、
請求項１１記載の制御方法。
【請求項１５】
前記全コピーの開始前に、前もって、前記初期データ群のサイズと、単位時間当たりに生じる差分データ群のサイズと、前記第一の閾値とを含む複数の情報要素の入力を受け付け、入力された前記初期データ群のサイズと、入力された単位時間当たりに生じる差分データ群のサイズとに基づいて、各回のコピー所要時間を推定し、推定されたコピー所要時間が入力された前記第一の閾値以下になった場合に、前記第一の閾値以下と推定されたコピー所要時間でのコピーを最終回のコピーとして、全コピーを開始していから最終回のデータコピーが終了するまでに要する移行期間を算出する、
請求項１２記載の制御方法。
【請求項１６】
所定の期間において許可された一以上の時間帯で前記コピーが実行される場合、
入力される前記複数の情報要素には、前記一以上の時間帯の長さが含まれ、
前記一以上の時間帯に基づいて、前記移行期間を算出する、
請求項１５記載の制御方法。
【請求項１７】
前記第一のNAS装置に関する負荷を表す第一の負荷情報と前記第二のNAS装置に関する負荷を表す第二の負荷情報とのうちの少なくとも一方を取得し、前記取得された負荷情報が表す負荷が第二の閾値を超えていれば、コピーの速度を遅らせる、
請求項１１記載の制御方法。
【請求項１８】
前記第一のNAS装置の第一の記憶領域と前記第二のNAS装置の第二の記憶領域をマウントし、前記全コピー及び前記差分コピーでは、マウントした第一の記憶領域からマウントした第二の記憶領域へのコピーである、
請求項１１記載の制御方法。
【請求項１９】
前記第一のNAS装置の第一の記憶領域をマウントし、前記全コピー及び前記差分コピーでは、マウントした第一の記憶領域か第二の記憶領域へのコピーである、
請求項１１記載の制御方法。
【請求項２０】
前記第一の記憶領域は、第一のシェアディレクトリであり、
前記第二の記憶領域は、第二のシェアディレクトリであり、
前記全コピー又は前記差分コピーであるコピーに要したコピー所用時間を計測し、
前記データ確定条件に合致するとは、前記計測されたコピー所要時間が予め決められた第一の閾値以下になることであり、
前記最終回の差分コピーが完了した後、前記第二のNAS装置に対して、前記第一のNAS装置のIPアドレス及びホスト名を前記第二のNAS装置に設定し、前記第二のNAS装置の前記第二のシェアディレクトリに対して前記クライアント装置からのアクセスの受け付けを開始させ、
前記差分データは、前記第一のシェアディレクトリに格納されているが前記第二のシェアディレクトリに格納されていないデータと、前記第一のシェアディレクトリ及び前記第二のシェアディレクトリの両方に格納されているデータであるが該データに関する属性が変更されたデータとのうちの少なくとも一方である、
請求項１１記載の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、第一のNAS装置に記憶されているデータを第二のNAS装置にコピーする技術に関する。
【背景技術】
【０００２】
一般に、複数のホスト計算機からのデータアクセスを実現するNAS（Network Attached Storage）と呼ばれる技術が普及している。NASによれば、ストレージ装置（以下、「NAS装置」）に記憶されているデータを複数のホスト計算機でシェアすることが実現される。この場合、ＮＡＳ装置とホスト計算機間は、所定のプロトコル、一般的には、NFS（Network File System）或いはCIFS（Common Internet File System）と呼ばれるプロトコルを介して、接続される。
【０００３】
データは、一般に、長期間（例えば、数年〜数十年、場合によっては数百年）保管される。この場合、NAS装置の装置寿命や法定耐用年数の超過、技術革新等により、既存のNAS装置を新たなNAS装置に置き換えるニーズ、つまり、ＮＡＳ装置間でデータを移行するニーズが発生する。
【０００４】
NAS装置間のデータ移行に関して、例えば３つの技術が知られている。
【０００５】
第一の技術に関する開示が例えば特許文献１にある。第一の技術では、移行先NAS装置が、クライアント（ホスト計算機）から未移行データのRead要求を受け付けると、移行元NAS装置からOn-demandで当該未移行データを取得し（つまり、当該未移行データを自分自身に移行し）、クライアントに応答を返す。また、クライアントから新規に追加されたデータ及び／又は更新されたデータ（以下、追加／更新データ）は、移行先NAS装置にそのまま保持される。
【０００６】
第二の技術に関する記載が例えば特許文献２にある。第二の技術では、移行元ＮＡＳ装置、移行先NAS装置及びクライアントを接続する中間スイッチが設けられる。中間スイッチは、移行元NAS装置のデータを移行先NASにデータを移行する。クライアントは、中間スイッチにアクセスし、中間スイッチは、必要なデータを保持するNAS装置からデータを随時取得し、クライアントに転送する。
【０００７】
第三の技術に関する記載が例えば特許文献３にある。第三の技術では、データがblockレベルでやり取りされる。移行元ＮＡＳ装置から移行先NAS装置にデータがblockレベルで移行される。
【特許文献１】特開2003-173279号公報
【特許文献２】特開2006-164211号公報
【特許文献３】特開2005-292952号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
前述した第一乃至第三の技術には、例えば下記課題がある。
【０００９】
（a）移行の安全性に問題がある。具体的には、第一及び第二の技術では、追加／更新データ（例えば最新のデータ）が、移行先NAS装置にあるため、何らかの原因で移行を中止、元に戻したい場合の復旧作業が困難となる。
【００１０】
（b）ヘテロ環境に対応することができない、言い換えれば、移行元ＮＡＳ装置と移行先ＮＡＳ装置の少なくとも一方が限られる。具体的には、第三の技術では、blockレベルでデータがコピーされるため、移行元ＮＡＳ装置と移行先NAS装置との間で互換性が要求される。例えば、ファイルシステムが同一である必要があり、移行元ＮＡＳ装置と移行先ＮＡＳ装置のそれぞれのベンダ或いは機種などが異なっている場合、データの移行ができない。また、第一の技術では、未移行データをOn-demandで移行可能な機能を持つ移行先NAS装置を用いる必要があり、それ故、移行先ＮＡＳ装置が限られる。
【００１１】
（c）データ移行のための環境の構築が高価となる。具体的には、第二の技術では、専用の高価なスイッチが必要となる。データ移行の際に使用されるソフトウェアやスイッチは、一般的に、HSM（Hierarchical Storage Management）や仮想化等の用途で設計されており、データ移行後も撤去することはなく、高い費用（例えば保守費）がかかる。
【００１２】
従って、本発明の目的は、移行元ＮＡＳ装置と移行先ＮＡＳ装置との間での互換性を必要とせず、安価且つ安全に、ＮＡＳ装置間でのデータ移行を実現することにある。
【００１３】
本発明の他の目的は、後述の説明から明らかになるであろう。
【課題を解決するための手段】
【００１４】
第一のNAS装置から第二のNAS装置へのデータの移行を制御する装置に、コピー実行部とコピー制御部とを備える。コピー実行部が、第一のNAS装置の第一の記憶領域に格納されている全てのデータで構成された初期データ群を該第一の記憶領域からリードして第二のNAS装置の第二の記憶領域にライトする全コピーを行い、全コピー又は差分コピーが完了した後に、直前回の全コピー又は差分コピーによりリードされたデータ群との差分に相当する一以上のデータで構成された差分データ群を前記第一の記憶領域からリードして前記第二の記憶領域にライトする差分コピーを行う。コピー制御部が、少なくとも差分コピーが完了する都度に、データ確定条件に合致したか否かを判断し、前記データ確定条件に合致していれば、前記第一のNAS装置に前記第一の記憶領域に対するクライアント装置からのライトを抑止させ、最終回の差分コピーを前記コピー実行部に実行させる。
上述した各部は、ハードウェア、コンピュータプログラム又はそれらの組み合わせ（例えば一部をコンピュータプログラムにより実現し残りをハードウェアで実現すること）により構築することができる。コンピュータプログラムは、所定のプロセッサに読み込まれて実行される。また、コンピュータプログラムがプロセッサに読み込まれて行われる情報処理の際、適宜に、メモリ等のハードウェア資源上に存在する記憶域が使用されてもよい。また、コンピュータプログラムは、ＣＤ−ＲＯＭ等の記録媒体から計算機にインストールされてもよいし、通信ネットワークを介して計算機にダウンロードされてもよい。
【発明を実施するための最良の形態】
【００１５】
以下、本発明の幾つかの実施の形態を説明する。なお、以下の説明では、移行元NAS装置にある全てのデータ（追加／更新されたデータを含む）を移行先NAS装置にコピーしただけでなく、移行先NAS装置が、その全てのデータのいずれに対するアクセスをクライアントから受け付けるようになって、データ移行の完了とする。
【００１６】
＜第一の実施形態＞。
【００１７】
図1は、本発明の第一の実施形態に係る計算機システムの例を示した図である。
【００１８】
本システムには、NAS装置間のデータ移行を実施する移行サーバ1000と、移行元のNAS装置であるNAS装置2000と、移行先のNAS装置であるNAS装置3000と、NAS装置2000及び3000にNFS及び／又はCIFS（以下、「NFS/CIFS」と記載する）経由でアクセスするクライアント4000とがある。
【００１９】
NAS装置2000は、移行の対象となるデータ2031を持ち、当該データ２０３１は、NFS/CIFSでシェアされる。移行サーバ1000は、NAS装置2000のシェアディレクトリをNFS/CIFSにてマウントし、データ2031をReadできる状態になる。移行サーバ1000は、それと並行して、NAS装置3000のシェアディレクトリをNFS/CIFSにてマウントし、NAS装置2000からデータ2031を読み出してNAS装置3000に書き込んでいく。つまり、データ2031のコピーが実行される。データ2031は、コピー開始前にNAS装置2000の移行元ディレクトリに格納されている全てのデータである。そのため、以下、初回に行われる本コピーを、「全コピー」と呼ぶ。
【００２０】
全コピーが実行されている間、NAS装置2000は、クライアント4000からのNFS/CIFSによるアクセス（Read及び/又はWrite）を受け付ける。その結果、例えば、NAS装置2000には、データ2031のコピー中に、追加及び／又は更新（以下、「追加／更新」と記載する）されたファイルに該当するデータ2032が生成されたとする。言い換えれば、データ2032は、全コピーが終了した場合のNAS装置3000とNAS装置2000との間に生じた差分となる。このため、データ2032を、以下、差分データ2032と呼ぶこともあれば、追加／更新データ2032と呼ぶこともある。
【００２１】
移行サーバ1000は、データ2031のコピー終了後、直ちに（或いは一定時間経過した後に）、データ2031のコピーを開始してから現在までに生じた差分データ2032のコピーを実施する。以下、このコピーを、前述した全コピーに対して「差分コピー」と呼ぶ。
【００２２】
この差分コピーの最中も、NAS装置2000は、クライアント4000からのアクセスを継続して受け付ける。移行サーバ1000は、この差分コピーの完了後、コピー所要時間（この差分コピーに要した時間長）が、予め決められたサービス停止許容時間（例えば10時間）を下回っているかどうかをチェックする。移行サーバ1000は、コピー所要時間が、サービス停止許容時間を下回っておらず、１回目の差分コピー中に新たな差分データがNAS装置2000に生じていれば、その新たな差分データをコピーする２回目の差分コピーを実施する。移行サーバ1000は、このような差分コピーの繰り返しを、差分コピーのコピー所要時間がサービス停止許容時間を下回るまで続ける。
【００２３】
コピー所要時間がサービス停止許容時間を下回ったことを検出した場合、移行サーバ1000は、NAS装置2000に対して、クライアント4000からのアクセスを遮断する命令を発行する。NAS装置2000は、その命令に応答して、クライアント4000からのアクセスを遮断し（例えば、少なくともライト要求の受付を停止し）、データを確定させる（つまり、新たに追加／更新が生じないようにさせる）。その後、移行サーバ1000は、NAS装置2000の追加／更新データを、NAS装置3000にコピーする（つまり、最後の差分コピーを実行する）。最後に、NAS装置3000が、クライアント4000からのアクセスを受け付ける。これにより、本実施形態でのデータ移行が完了する。
【００２４】
図2に、NAS装置2000及び3000の構成例を示す。本実施形態では、NAS装置2000の構成とNAS装置3000の構成は同じため、図２では、NAS装置2000の構成要素についてはカッコ無しで参照番号を付し、NAS装置3000の構成要素についてはカッコ有りで参照番号を付している。しかし、NAS装置2000とNAS装置3000の構成は必ずしも同じである必要は無い。具体的には、例えば、双方のNAS装置2000と3000のベンダや機種等が異なっていてもよい。
【００２５】
NAS装置2000（3000）は、データのI/O（アクセス）を制御するストレージ制御装置2010（3010）と、データを格納するディスク群を配置するディスク格納装置2020（3020）とを備え、それらがバス2023（3023）で接続される。
【００２６】
ストレージ制御装置2010（3010）は、CPU等で構成される処理部2011（3011）と、メモリ等で構成される記憶部2012（3012）と、NFS/CIFSでのアクセスを処理するNASコントローラ2013（3013）と、ディスク格納装置2020（3020）と接続されるストレージ接続装置2014（3014）とを備え、それらがバス2015（3015）で接続される。記憶部2012（3012）には、ストレージ制御プログラムが格納される。ストレージ制御プログラムは、コンピュータプログラムであり、処理部2011（3011）で実行されることにより、後述する論理ボリューム2022へのアクセス等、ストレージI/Oに関わる処理を実行する。以下、コンピュータプログラムが主語になる場合は、実際にはそのコンピュータプログラムを実行する処理部（例えばＣＰＵ）によって処理が行われるものとする。
【００２７】
NASコントローラ2013（3013）は、CPU等で構成される処理部2016（3016）と、メモリ等で構成される記憶部2017（3017）と、IPネットワーク接続機能を有するポート2018（3018）とを備える。記憶部2017は、NFS/CIFSに関する制御処理を行うNAS制御プログラムと、どのディレクトリをどのクライアントに対してシェアさせているかを示すNAS Share情報2019（3019）とを記憶する。NAS制御プログラムは、処理部2016（3016）にて実行される。
【００２８】
ディスク格納装置2020（3020）は、ハードディスクドライブ等のディスク装置で構成されたディスク群2021（3021）を有する。ディスク群2021（3021）は、ストレージ接続装置2014（3014）にバス2023（3023）で接続される。ディスク群2021（3021）には、一以上のRAID（Redundant Array of Independent （or Inexpensive） Disks）グループが含まれ、各RAIDグループは、二以上のディスク装置で構成され、RAID5等のRAID構成を採る。各RAIDグループの記憶空間を基にLU（Logical
Unit）と呼ばれる論理ボリューム2022（3022）が形成され、各論理ボリューム2022（3022）に関する情報（例えば各論理ボリューム2022（3022）のLUN（Logical Unit Number）や記憶容量など）がストレージ制御プログラムにより管理される。
【００２９】
図3は、移行サーバ1000の構成例を示す。
【００３０】
移行サーバ1000は、CPU等の処理部1001と、メモリ等の記憶部1002と、IPネットワーク機能を有するポート1003、1004と、キーボード等の入力装置1005と、ディスプレイ等の出力装置1006とを備え、それらがバス1007で接続される。記憶部1002は、OS（Operation
System）プログラム（Windows（登録商標）、LinuxなどのOS）と、後述するデータ移行プログラム1008と、期間見積もりプログラム1009と、NAS mount情報1010とを記憶する。OSプログラムや他の各コンピュータプログラム1008、1009は、処理部1001にて実行される。
【００３１】
図4は、NAS装置2000（3000）が保持するNAS Share情報2019（3019）の例や、移行サーバ1000が保持するNAS mount情報1010の例を示す。
【００３２】
NAS
Share情報2019（3019）には、NAS装置2000（3000）が保持するどのディレクトリがどんな装置にどんなアクセス権限でシェアされているかを示す記述が含まれる。
【００３３】
例えば、NAS Share情報2019には、ディレクトリ“/data1”やディレクトリ“/data2”が移行サーバ1000（server1）にシェアされることを意味する記述と、移行サーバ1000の上記各ディレクトリに対するアクセス権限がReadのみであることを意味する記述“ro”とが含まれている。“no_root_squash”の記述は、NFSにおいてroot権限でのアクセスが許可されるという意味である。また2, 4行目の記述は、ディレクトリ名“/data1”のディレクトリやディレクトリ名“/data2”のディレクトリに対するアクセス権限としてクライアント4000に対しRead及びWriteのいずれも許可することを意味する。
【００３４】
また、例えば、NAS Share情報3019には、ディレクトリ“/data1”やディレクトリ“/data2”が移行サーバ1000（server1）にシェアされることを意味する記述と、移行サーバ1000の上記各ディレクトリに対するアクセス権限がRead及び Writeのいずれも可能であることを意味する記述“rw”とが含まれている。“no_root_squash”の記述はNFSにおいてroot権限でのアクセスを許可するという意味である。この図に示すNAS Share情報3019をNAS Share情報2019と比較すると、NAS装置3000には現時点でクライアント4000に対してアクセス許可を与える必要がないことがわかる。
【００３５】
NAS
mount情報1010には、移行サーバ1000が保持するどのローカルディレクトリに、どのNAS装置のどのシェアディレクトリがマウントされているかを示す記述が含まれる。例えば、NAS mount情報1010には、NAS-A（NAS装置2000）にてシェアされているディレクトリ“/data1”を移行サーバ1000のローカルディレクトリである“/mnt/NAS-A/data1”にmountしていることを意味する記述が含まれている。
【００３６】
以下、図5を用いて、移行サーバ1000で実行されるデータ移行プログラム1008が行う処理の流れを説明する。データ移行プログラム1008により、NAS装置2000と3000との互換性を必要としない、安価かつ安全なデータ移行を実現することが可能となる。なお、本実施形態は、NFSを例として説明しているが、CIFSにおいても実質的に手順は同じにすることができる（NAS Share情報2019（3019）等のフォーマットが異なってもよい）。
【００３７】
ステップ1101にて、データ移行プログラム1008は、コピー対象の移行元・移行先ディレクトリのリストを取得する。ここでは、例えば、移行元ディレクトリを表す値（例えばパス名）として、“/mnt/NAS-A/data1”,“/mnt/NAS-A/data2”がリストアップされ、移行先ディレクトリを表す値（例えばパス名）として、“/mnt/NAS-B/data1”、“/mnt/NAS-B/data2”がリストアップされるとする。すなわち、この処理流れでは、２つの移行元ディレクトリ“/mnt/NAS-A/data1”、“/mnt/NAS-A/data2”と、それら２つの移行元ディレクトリのそれぞれのコピー先となる２つの移行先ディレクトリ“/mnt/NAS-B/data1”、“/mnt/NAS-B/data2”があるとする。
【００３８】
ステップ1102にて、データ移行プログラム1008は、変数iを0にセットする。変数i＝０は、全コピーの実行を意味する。
【００３９】
ステップ1103にて、データ移行プログラム1008は、現在時刻TSを取得する。ここでは、例えば、TS＝”9/6
0:10”とする。
【００４０】
ステップ1104にて、データ移行プログラム1008は、“src_dir[i]”に対応するデータをdst_dir[i]へコピーする。この段階では、i＝0のため、src_dir[0]に対応する一つの移行元ディレクトリとして、“/mnt/NAS-A/data1”があり、“dst_dir[0]に対応する一つの移行先ディレクトリとして、“/mnt/NAS-B/data1”がある。図6に、移行元ディレクトリ“/mnt/NAS-A/data1”内の現在のデータ2031（つまり、ステップ1103で取得された現在時刻TSの時点に存在するデータ2031）の構成例を示す。データ移行プログラム1008は、移行先ディレクトリ“/mnt/NAS-B/data1”が現在空きであるため、データ2031全てをそのまま移行先ディレクトリ“/mnt/NAS-B/data1”にコピーする。すると、移行先ディレクトリ“/mnt/NAS-B/data1”内は、図7の下段に示す通りとなる（データ2031）。なお、この間、NAS装置2000は、クライアント4000からディレクトリ“/data1”に対するRead/Write要求を受け付けており、Write要求を受けた場合、該Write要求に従って、ディレクトリ“/data1”にデータの追加、或いはデータの更新を行う。
【００４１】
ステップ1105にて、データ移行プログラム1008は、コピーすべきsrc_dir, dst_dirの有無（つまり、全コピーが完了したか否か）をチェックする。ここでは、もう１つの移行元ディレクトリ“/mnt/NAS-A/data2”のデータをもう１つの移行先ディレクトリ“/mnt/NAS-B/data2”にコピーする必要があるため、変数iを1にセットし（つまり変数iを１つインクリメントし）、上記コピー処理を、ステップ1104に戻って継続する。全てのsrc_dir,
dst_dirのコピー処理が完了した場合、ステップ1106に進む。
【００４２】
ステップ1106にて、データ移行プログラム1008は、現在時刻TEを取得する。ここでは例えば、TE＝"9/8
10:23"とする。
【００４３】
ステップ1107にて、データ移行プログラム1008は、現在時刻TSと現在時刻TEとの差、すなわち、ステップ1104から1105にかかった経過時間Tを算出する。ここでは、T＝58時間13分となる。
【００４４】
ステップ1108にて、データ移行プログラム1008は、あらかじめ与えられたサービス停止許容時間をTが下回っているかどうか判定する。サービス停止許容時間とは、クライアント4000からのRead/Write要求の受け付けを停止しても良い時間長、具体的には、例えば、移行すべきデータを確定させた後に必要なデータをNAS装置3000にコピーするために、NFS/CIFSサービスを停止する時間長を意味し、例えば入力装置1005等にて入力される値である。ここでは、サービス停止許容時間を10時間とする。よってT < 10時間とはならないため、ステップ1101まで戻り、同様の処理を繰り返す。
【００４５】
ちなみに、変数i＝０のコピーが完了した時点で、NAS装置3000に格納された/data1のデータは、図7の下段に示す通りデータ2031である。先のステップ1104から1105にてかかった時間はT（58時間13分）であるが、この間、クライアント4000は、移行元であるNAS装置2000へアクセスすることができる。言い換えれば、例えば、NAS装置2000は、クライアント4000から移行元ディレクトリ“/data1”に対するWrite要求を受け付けており、Write要求を受けた場合には、新たに追加／更新されたファイルが移行元ディレクトリ“/data1”に生じる。図7の上段に、追加／更新データを含むNAS装置2000のデータ2032を示す。データ2032は、データ2031と比較して、下記が異なる。
（a） ファイルの更新日時（mtime）: file3
（b） ファイルのパーミッション: file5
（c） ファイルのオーナー: file6
（d） 新規追加ファイル: file9
（e） 削除されたファイル: file7。
【００４６】
ファイルの属性としては、例えば、更新日時、パーミッション、オーナー及びサイズのうちの少なくとも一つを採用することができる。移行サーバは、追加／更新データを、移行元NASと移行先NASのデータを比較することで判別することができる。データ移行プログラム1008は、上記（a）から（e）の変更を、src_dir, dst_dirのファイルリストをNAS装置2000から取得することでチェックし、必要なデータ（つまり、追加／更新データ）をNAS装置3000にコピーする。よって、ここでは、NAS装置3000のデータ2031は、新たにデータ2032の内容にコピーされる。すなわち、上記（a）から（e）の変更に関わる差分データが、移行元ディレクトリから移行先ディレクトリにコピーされる（つまり１回目の差分コピーが実行される）。
【００４７】
コピーが繰返し実行されることで、後の回のコピーになればなるほど、コピーすべきデータの量が少なく、故に、コピー所要時間Tの時間が短くなる。そして、差分コピーを何度か繰り返すことで、或る回での差分コピーに要したコピー所要時間Tは、サービス停止許容時間を下回ることになる。データ移行プログラムは、T＜サービス停止許容時間を検出した場合、ステップ1109に進む。
【００４８】
ステップ1109にて、データ移行プログラム1008は、NAS装置2000のデータを確定し、サービス切替処理を実施する。詳細を図8を用いて説明する。
【００４９】
ステップ1201にて、データ移行プログラム1008は、NAS装置2000に、クライアント4000からのアクセスを停止させる。具体的には、例えば、データ移行プログラム1008は、図4に示すNAS Share情報2019の2, 4行目を削除してNFSサービスを再起動させる。これにより、クライアント4000は、NAS装置2000へデータのRead/Writeができなくなり、NAS装置2000のデータが確定する。
【００５０】
ステップ1202にて、データ移行プログラム1008は、変数iを0にセットする。
【００５１】
ステップ1203から1204にて、データ移行プログラム1008は、src_dirのデータ（つまり差分データ）をdst_dirにコピーする。ここでは、データが確定した移行元ディレクトリ“/mnt/NAS-A/data1”内のデータを移行先ディレクトリ“/mnt/NAS-B/data1”へコピーし、同様に、移行元ディレクトリ“/mnt/NAS-A/data2”内のデータを移行先ディレクトリ“/mnt/NAS-B/data2”へコピーする。これにより、NAS装置2000におけるディレクトリ“/data1”、“/data2”内のデータと、NAS装置3000におけるディレクトリ“/data1”、“/data2”内のデータとが一致する。
【００５２】
ステップ1205にて、データ移行プログラム1008は、NAS装置2000のIPアドレス及びホスト名を、NAS装置3000に付け替える。
【００５３】
ステップ1206にて、データ移行プログラム1008は、NAS装置3000において、クライアント4000からのアクセスを受け付けるよう、アクセス許可設定を変更する。具体的には、例えば、データ移行プログラム1008は、図4のNAS
Share情報2019の2, 4行目をそのままNAS Share情報3019に追記してNFSサービスを再起動させる。これにより、クライアント4000が、NAS装置2000のデータを持つNAS装置3000にアクセスすることが可能となる。なお、最後に、保守員等の人間により、不要となった移行サーバ1000及びNAS装置2000が撤去されてよい。
【００５４】
上述した実施形態では、データ移行プログラム1008は、移行サーバ1000に格納されているが、それに代えて、移行先のNAS装置であるNAS装置3000に格納されてもよい（例えば図9及び図10参照）。
【００５５】
また、上述した実施形態では、“/data1”及び“/data2”といった複数のシェアディレクトリを1つの移行サーバ1000にてコピーしたが、これを複数の移行サーバ及び／又は複数のプロセスで負荷分散してもよい。具体的には、例えば、ディレクトリ“/data1”内のデータのコピーを担当する移行サーバ1000aと、ディレクトリ“/data2”内のデータのコピーを担当する移行サーバ1000bとがあってもよい。また、ディレクトリ“/data1”内のデータのコピーを移行サーバ1000のデータ移行プログラム1008aで実行し、ディレクトリ“/data2”内のデータのコピーを移行サーバ1000のデータ移行プログラム1008bで実行しても良い。
【００５６】
ところで、一般的に、データ移行に要する期間（以下、移行期間）は、コピー対象のデータの量に依存するところはあるが、長期化する傾向がある。このため、移行期間を事前に見積もることで、適切な移行システムのサイジングを実施することが重要となる。
【００５７】
そこで、この実施形態では、更に、移行期間の見積もりを実行することができる。
【００５８】
移行期間の見積もりでは、期間見積もりプログラム1009が、図１１に例示する見積もり用データ入力画面1020を表示する。この画面1020に、ユーザが、移行期間見積もりに必要な複数の情報要素として、例えば、データ量（移行元のNAS装置2000にあるコピー対象のデータの量）、追加・更新データ量（単位時間あたりに追加／更新されるデータの量）、ファイル数、処理時間（データコピーを実施してもよい時間帯）、サービス停止許容時間、最大移行期間を入力する。期間見積もりプログラム1009は、これらの情報要素を入力として、移行サーバの台数別に移行期間見積もりを算出し、図12に示すように、移行サーバの台数ごとの移行期間の見積もりを表示する。これにより、移行作業者、設計者或いは運用管理者のユーザは、移行期間がどれくらいかかるのか、事前に把握することができる。
【００５９】
以下、図13を用いて、期間見積もりプログラム1009が行う処理の流れを説明する。
【００６０】
ステップ1201にて、期間見積もりプログラム1009は、変数DT（総コピー処理時間）に0を、iに1をそれぞれセットする。
【００６１】
ステップ1202にて、期間見積もりプログラム1009は、i回目のコピー処理においてコピーすべきデータ量D（i）を算出する。i＝1の場合は、先に述べたデータ移行プログラム1008におけるコピー1回目にあたるため（つまり全コピーにあたるため）、D（1）は、図11にて入力したデータ量1000GBとなる。
【００６２】
ステップ1203にて、期間見積もりプログラム1009は、i回目のコピー所要時間RT（i）を算出する。RT（i）は、コピーすべきデータ量D（i）を、実際のコピー性能Nで割ることで、算出することができる。Nは、例えば、移行サーバ1000とNAS装置3000のNFS/CIFSでのWrite性能とすることができる。なぜなら、一般的に、NFSやCIFSは、ReadよりもWriteの方がbottleneckになるためである。ここでは、例えば、N＝50Mbps（メガバイト／秒）とする。
【００６３】
また、コピー所用時間RT（i）の算出では、図11に示す処理時間Pを考慮する必要がある。処理時間Pは、例えば、移行元のNAS装置2000の負荷等を考慮し、例えば18時から翌日8時までコピー処理を実施してもよい等の、運用上の制限となる。図11の例では、18時から翌日8時が処理時間であるため、P＝14時間となる。P<24であれば、運用上の制限があるため、コピー処理を実施しても良い時間長が限られる。なお、24という数値は、１日が２４時間であることを意味し、故に、処理時間Pは、１日のうちのどれだけの時間をコピー処理に割り当てても良いかを意味することになる。
【００６４】
この場合、計算式は、下記（１）式、
RT（i）＝（D（i）÷N）＋（D（i）÷N）÷P）×（24−P）…（１）
となる。ここではP<24のため、RT（1）＝（1000GB÷50Mbps）＋（（1000GB÷50Mbps）÷14）×（24−14）＝74時間となる。なおP＝24であれば運用上の制限はないため、RT（1）＝D（i）÷N（つまり、1000GB÷50Mbps＝44時間）となる。
【００６５】
ステップ1204にて、期間見積もりプログラム1009は、DT＝DT＋RT（1）の計算をする。ここではDT＝0＋74時間＝74時間となる。
【００６６】
ステップ1205にて、期間見積もりプログラム1009は、RT（1）がｔを下回っているかをチェックする。ｔは、サービス停止許容時間を示し、ここでは、図11に示すように15時間である。現在RT（1）＝74時間であるため、ｔを下回らず、ステップ1206へ進む。
【００６７】
ステップ1206にて、期間見積もりプログラム1009は、総コピー時間DTがMを下回っているかをチェックする。Mは、データ移行にかけてもよい最大移行期間を示し、ここでは、図11に示すように2,160時間（3ヶ月）である。現在DT＝74時間であるためMを下回っているので、iを2にセットして（つまりiを１インクリメントして）、ステップ1202に戻る。
【００６８】
以下、ステップ1202から1206を続けていくと、下記のようになる。なお、ここで、iが2以上の場合、コピーすべきデータ量D（i）は、（前回のコピー所要時間）×（単位時間あたりのデータ追加・更新量U）となる。
【００６９】
・コピー2回目：RT（2）＝（74時間×10GB/1時間÷50Mbps）＋
（（74時間×10GB/1時間÷50Mbps）÷14）×（24−14）
＝54時間（DT＝74＋54時間＝128時間でMを下回る）
・コピー3回目：RT（3）＝（54時間×10GB/1時間÷50Mbps）＋
（（54時間×10GB/1時間÷50Mbps）÷14）×（24−14）
＝28時間（DT＝128＋28時間＝156時間でMを下回る）
・コピー4回目：RT（4）＝（28時間×10GB/1時間÷50Mbps）＋
（（28時間×10GB/1時間÷50Mbps）÷14）×（24−14）
＝12時間（DT＝156＋12時間＝168時間でMを下回る）
以上から、コピー4回目のコピー所要時間RT（4）にて、サービス停止許容時間ｔの15時間を下回り（ステップ1205）、DT及びコピー回数を示すRC（＝i）が確定する（ステップ1206）。これにより、移行期間見積もりが明らかになり、移行システムの設計者（ユーザ）は、適切なシステムのサイジングが可能となる。
【００７０】
なお、処理時間Pについて、処理時間P内にデータ移行処理を実施するためには、コピー処理を所定の時間に開始及び終了させる機能をデータ移行プログラム1008に付加することで、実現することができる。
【００７１】
また、DTがMを下回らなかった場合も（ステップ1206でno）、ステップ1207に進む。
【００７２】
また、図10に示すように、期間見積もりプログラム1009をNAS装置3000に配置してもよい。
【００７３】
また、格別詳述していないが、期間見積もりプログラム1009は、サーバの台数に応じて前述した見積もりを実行することができる。
【００７４】
＜第二の実施形態＞。
【００７５】
データ移行処理においては、移行元であるNAS装置2000にRead分の負荷がかかる。NAS装置2000は、クライアント4000からのアクセスを受け付ける通常の運用状態にあるため、上記負荷のために、クライアント4000に対するアクセス性能が低下する可能性がある。
【００７６】
そこで、この第二の実施形態では、データ移行プログラム1008に以下の機能、すなわち、データのコピー中に、NAS装置2000の性能情報を常に監視し、あらかじめ決められた閾値（例えば入力装置1005等にて入力される値）を超過した際に、コピーの速度をスロットリングする機能が追加される。
【００７７】
以下、図14に処理フローを示す。なお、本処理フローは、例えば、図5に示すステップ1104の最中に実施される。
【００７８】
ステップ1301にて、データ移行プログラム1008は、NAS装置2000の性能情報を取得する。性能情報としては、例えば、CPU利用率や、メモリ利用率や、ポートのトラフィック量等の、NAS装置2000の負荷に関わる情報を示し、例えばSNMP等にて取得することが可能である。
【００７９】
ステップ1302にて、データ移行プログラム1008は、あらかじめ決められた閾値を、ステップ1301で取得した性能情報が超過するか否かをチェックする。例えば。ステップ1301にて取得した性能情報が。CPU利用率50%だったとする。あらかじめ決められた閾値が60%ならば、n秒待って、ステップ1301に戻る。閾値が40%だった場合は、ステップ1303に進む。
【００８０】
ステップ1303にて、データ移行プログラム1008は、データのコピー速度をスロットリングする。具体的には、例えば、NFS／CIFSの書き込みブロックサイズを小さくすることやポートのトラフィック量の流出制限（レートリミット）を設定することでスロットリングを実現する。その後、ステップ1301に戻り、上記の処理を繰り返す。
【００８１】
以上の処理は、図5のステップ1104が終了するまで続けられる。これにより移行元のNAS装置2000の負荷が高まってクライアントへのアクセスに影響が生じても、コピー速度をスロットリングすることで前記負荷を軽減し、クライアントへの影響を最小化できる。
【００８２】
＜第三の実施形態＞。
【００８３】
本発明の第三の実施形態では、データ移行プログラム1008に、スナップショット取得機能が追加される。この第三の実施形態では、データ移行プログラム1008は、以下の流れで、データコピーを実行することができる。
【００８４】
（１）図１５に示すように、データ移行プログラム1008は、移行元NAS装置2000に、全コピーの対象となるデータが格納されているボリューム（ファイルシステム）のスナップショットを取得させる。スナップショットが記憶される領域としては、例えば、ファイルシステムに対応したボリュームと同じ容量を有する別の論理ボリュームであっても良いし、NAS装置2000或いは移行サーバ1000内のメモリであってもよい。
【００８５】
（２）データ移行プログラム1008は、スナップショットを構成するデータをNFS/CIFSにてシェアの対象とさせる。
【００８６】
（３）データ移行プログラム1008は、スナップショットを有する記憶領域から、スナップショットを構成する全てのデータをリードし、リードしたデータを、移行先NAS装置3000内の移行先ディレクトリにコピーする。これにより、全コピーが完了する。
【００８７】
（４）データ移行プログラム1008は、全コピーのコピー所要時間がサービス停止許容時間を下回っていれば、データを確定し、確定したデータについても、スナップショットを取得させ、スナップショットからデータをリードして移行先NAS装置3000にライトする。一方、全コピーのコピー所要時間がサービス停止許容時間を超えていれば、データ移行プログラム1008は、差分コピーを実行する。具体的には、例えば、データ移行プログラム1008は、移行元NAS装置2000に、差分データ（追加／更新データ）のスナップショットを取得させ、そのスナップショットを構成する差分データをリードし、リードしたデータを移行先NAS装置3000の移行先ディレクトリにライトする。
【００８８】
（５）データ移行プログラム1008は、（４）の差分コピーに要したコピー所用時間がサービス停止許容時間を下回っていれば、データを確定し、確定したデータについても、スナップショットを取得させ、スナップショットからデータをリードして移行先NAS装置3000にライトする。一方、差分コピーのコピー所要時間がサービス停止許容時間を超えていれば、（４）で説明した差分コピーを実行する。
【００８９】
この第三の実施形態によれば、クライアント4000にアクセスされるデータが実際に格納されている論理ボリューム（実ボリューム）からではなく、スナップショットからデータがリードされる。
【００９０】
以上、本発明の好適な幾つかの実施形態を説明したが、これらは本発明の説明のための例示であって、本発明の範囲をこれらの実施形態にのみ限定する趣旨ではない。本発明は、他の種々の形態でも実施することが可能である。例えば、NAS装置2000でのデータの確定は、サービス停止許容時間をコピー所要時間が下回ることに代えて、コピー回数が所定値を超える或いは下回る等の他の条件が採用されても良い。また、データ確定のために、リード及びライトの両方ではなく少なくともライトが抑止されれば良い。
【図面の簡単な説明】
【００９１】
【図１】図１は、本発明の第一の実施形態に係る計算機システムの例を示す。
【図２】図２は、本発明の第一の実施形態におけるNAS装置の構成例を示す。
【図３】図３は、本発明の第一の実施形態における移行サーバの構成例を示す。
【図４】図４は、本発明の第一の実施形態におけるNAS Share情報及びNAS mount情報の例を示す。
【図５】図５は、本発明の第一の実施形態におけるデータ移行の処理フローの例を示す。
【図６】図６は、本発明の第一実施形態における全コピー前の移行元ディレクトリ内のデータの例を示す。
【図７】図７は、本発明の第一の実施形態における全コピー後の移行元ディレクトリ内のデータの例と、全コピー前の移行先ディレクトリ内のデータの例を示す。
【図８】図８は、本発明の第一の実施形態におけるサービス停止及び切替処理フローの例を示す。
【図９】図９は、本発明の第一の実施形態における計算機システムの変形例を示す。
【図１０】図１０は、本発明の第一の実施形態におけるNAS装置の構成の変形例を示す。
【図１１】図１１は、本発明の第一の実施形態における見積もり用データ入力画面の例を示す。
【図１２】図１２は、本発明の第一の実施形態における見積もり結果出力画面の例を示す。
【図１３】図１３は、本発明の第一の実施形態における見積もり処理フローの例を示す。
【図１４】図１４は、本発明の第二の実施形態においてデータ移行プログラムのスロットリング機能により実行される処理フローの例を示す。
【図１５】図１５は、本発明の第三の実施形態におけるデータ移行の説明図である。
【符号の説明】
【００９２】
1000…移行サーバ、1001…処理部、1002…記憶部、1003…ポート、1004…ポート、1005…入力装置、1006…出力装置、1007…バス、1008…データ移行プログラム、1009…期間見積もりプログラム、1010…NAS mount情報、1020…見積もり用データ入力画面、1021…見積もり結果出力画面、2000…NAS装置、2010…ストレージ制御装置、2011…処理部、2012…記憶部、2013…NASコントローラ、2014…ストレージ接続装置、2015…バス、2016…処理部、2017…記憶部、2018…ポート、2019…NAS Share情報2020…ディスク格納装置、2021…ディスク、2022…論理ボリューム、2023…バス、2031…データ、2032…データ、3000…NAS装置、3010…ストレージ制御装置、3011…処理部、3012…記憶部、3013…NASコントローラ、3014…ストレージ接続装置、3015…バス、3016…処理部、3017…記憶部、3018…ポート、3019…NAS Share情報、3020…ディスク格納装置、3021…ディスク、3022…論理ボリューム、3023…バス、4000…クライアント
【図１】
2008181461.tif 000003
【図２】
2008181461.tif 000004
【図３】
2008181461.tif 000005
【図４】
2008181461.tif 000006
【図５】
2008181461.tif 000007
【図６】
2008181461.tif 000008
【図７】
2008181461.tif 000009
【図８】
2008181461.tif 000010
【図９】
2008181461.tif 000011
【図１０】
2008181461.tif 000012
【図１１】
2008181461.tif 000013
【図１２】
2008181461.tif 000014
【図１３】
2008181461.tif 000015
【図１４】
2008181461.tif 000016
【図１５】
2008181461.tif 000017