Dropboxは保存したデータをPCに同期して利用することで、ファイルサーバと同じ使い勝手を実現できる、というのが最大の利点となってます。このため、Dropboxをファイルサーバの代わりとして導入するお客様が大半です。そして、ファイルサーバのデータをDropboxに移行しようという話になるのですが…。
ファイルサーバには数10TB、中には数100TBのデータが保存されていることもあります。これだけの大容量のデータをDropboxに? やり方は? どれくらい時間かかるの?とたくさんの疑問点が出てくるのではないでしょうか。そこで、今回は弊社が行っているDropboxへのデータ移行方法について紹介したいと思います。
データ移行ツールが必須です!
まず最初は、データ移行に用いるツールについてです。
Dropboxにデータ移行する方法として、主に次の2つの方法があります。
- Dropboxデスクトップアプリを利用する
- データ移行ツールを利用する
Dropboxデスクトップアプリでの移行
Dropboxデスクトップアプリ(以降、Dropboxアプリ)は、みなさんもご存じのPCへの同期ツールのことです。Dropboxを使っている人は必ずこのアプリをインストールしていると思います。
ユーザプロファイル配下に作成された「Dropboxフォルダ」に、Dropboxクラウドに保存されたデータが同期されてますよね。また、PC上で新しいファイルを作成、保存するとすぐにクラウド上に同期されます。この処理を行ってるのが、Dropboxアプリです。
まず一つは、このDropboxアプリの機能を使って、データ移行を行う方法です(下図)。
PCにファイルサーバをネットワークドライブとしてマウントしておき、そこからDropboxフォルダにデータをコピーすることで、Dropboxアプリが自動的にクラウドにデータコピーします。
ファイルサーバのデータをDropboxフォルダへコピーするのはRobocopyで、DropboxフォルダからクラウドへのコピーはDropboxアプリが行いますので、この構成だと追加費用なしでデータ移行ができちゃうのです。実にスバラシイ!
「Dropboxフォルダにコピーするだけなんて、簡単じゃん!」
Dropboxアプリでの移行、そんなに簡単なわけないじゃん!
本当にこんなに簡単でいいのだろうか…いえいえ、実はこの方法には大きな落とし穴があります。
落とし穴①
DropboxフォルダもPCのストレージ内に作成されたフォルダなので、ファイルサーバのデータをコピーすると、当然PCのストレージを消費します。なので、最大でもPC のストレージ容量分しか移行できないんです。
ん?外部ストレージを増設して、Dropboxフォルダを外部ストレージに移動すればいいんじゃない? たしかに….。
落とし穴②
Dropboxアプリには、同期する最大ファイル数の推奨値があります。数TBの外部ストレージを増設しても、この最大同期ファイル数を超えては、肝心の同期処理に影響が出てしまうことも…。
そう、巨大な外部ストレージをつなげても限界があるんです。
落とし穴③
Dropboxアプリはエンドユーザがログを確認することができないので、移行結果を確認することができません。正しくすべてのデータが移行できたかどうかを確認するためには、移行元と移行先のデータ一覧を突き合わせる必要があり、一手間掛かります。
では、実際Dropboxアプリを使ってどれくらいデータ移行できるんでしょうか。ちょっと簡単に計算してみましょう。先程のPCに同期する最大ファイル数の推奨値は、30~50万ファイル (Dropbox社推奨)。1ファイル平均1.5MBとすると、1.5MB x 50万 = 750 GB。
PCのストレージはSSDが主流となってきてますので、外部ストレージなしだと、空きストレージは 多くても150GB くらいでしょうか。さっきの最大同期数から計算した容量よりもはるかに小さいですね。150GBだと10万ファイル(150GB÷1.5MB)程度。1TBの外部ストレージを利用して、やっと一度に50万ファイル程度を移行できそうですが、外部ストレージを利用することで、ファイルI/Oの性能がSSDより落ちてしまいそうです。
ちなみに、Dropboxアプリを活用するメリットもあります
- 操作が簡単 (Dropboxフォルダにコピーするだけ)
- 転送(同期)速度が速い
Dropboxアプリは転送データの分割・圧縮などで高速にクラウドと同期できるようになっていますし、操作が簡単なもの非常にメリットなんですが…落とし穴が大きすぎて…。
Dropboxアプリでの移行の実例
弊社もMovebotなどのクラウドストレージ用データ移行ツールがまだなかった頃、Dropboxアプリを使ったデータ移行をやっていたこともあります。
その時は、100GBほどの空きストレージがあるPCを20台ほど用意して行いました。すべてのPCにDropboxアプリをインストールし、ファイルサーバのフォルダを100GB以内収まるように分けて、データ移行を進める。20台ですべてのデータを移行できれば良かったのですが、移行容量はそれより多くて、PCを使い回す羽目に…。
PCを使い回す場合、Dropboxフォルダにはファイルサーバからコピーしたデータが保存されてPCのストレージを使ってしまっているので、Dropboxフォルダのデータを一度クリアしないといけません。選択型同期機能を使って移行できたフォルダのデータを同期対象外にし、同期処理で削除されるのを待つか、Dropboxアプリをアンインストールし、Dropboxフォルダを削除しちゃうといった対応が必要で、時間も手間もかかってしまいます。
こんな感じで、思った以上に四苦八苦しながらデータ移行を完遂したのでした。できればもう二度とやりたくないです、ほんとに。
ということで、ファイルサーバのような大容量データをDropboxへ移行するには、やはり専用の「移行ツール」が不可欠です。
データ移行ツールを使ったデータ移行
ファイルサーバからクラウドストレージへのデータ移行が可能なツールもいろいろあるようですが、弊社では「Dropboxデータ移行アドオンツール」としてDropbox社より提供されている「Movebot」を利用することがほとんどです。
Movebotについては、以前、本ブログでも詳しく取り上げましたので、詳しくはそちらを参照していただきたいですが、簡単に紹介すると、Dropbox APIを利用したデータ移行ツールで、Dropboxアプリとは異なり、移行用PCのストレージなどを消費せずにファイルサーバから読み出したデータを直接Dropboxに書き込めるのがメリットです。
Movebotを利用する場合、「データ移行用PC」としてファイルサーバをネットワークドライブとしてマウントし、データ読み出しするための機器(Windowsマシン)が必要で、これに Movebot Agent をインストールして利用します。
Movebot Agentがファイルサーバから読み出したデータは、一度 Movebot Worker Region という中継サーバに送信されます。ここまではMovebotの独自プロトコルでデータ転送が行われ、Worker RegionからDropboxクラウドサーバまでは Dropbox API が利用されます(上図)。
データ移行用PCはファイルサーバから読み出したデータをそのままネットワークへ書込むため、データ移行用PCのストレージは消費せずにデータ移行ができちゃいます。また、データ移行専用ツールですので、移行しないファイルタイプや移行しないフォルダの指定など、いろいろな移行設定が柔軟に行えることも専用ツールを利用するメリットですね。ということで、Movebotのメリットをまとめてみました。
Movebotのメリット:
- 移行用PCのストレージは消費しない
(PCストレージ容量やファイル数上限などを意識しないでOK) - データ移行用PC→Worker Region間はツール独自技術で高速転送
(WorkerからDropboxへは API を利用するため、上限はある) - 転送ログは ツールが記録してくれる
- リモート操作でデータ移行可能
- 移行用PCを複数台用意することで、パフォーマンスの向上が可能
(NW帯域にもよるが…) - 移行対象外設定も柔軟に設定可能
ん? Movebotのデメリットはないの? いいえ、あります。が、それは後ほどということで。
Moveboによる移行順序
データ移行ツールを利用すれば簡単にデータ移行できるわけではありません。色々と準備が必要です。
弊社では次のように大きく2つの工程に分けてデータ移行を進めていきます。
1. 移行設計工程
① ファイルサーバ調査
移行対象となる、ファイルサーバのフォルダ構成、フォルダ毎の保存ファイル数、保存データ容量などを確認します。この結果を受けて、Dropboxのフォルダ構成を設計します。
② 移行検証
お客様環境で実際にどれくらいの速度でデータ移行できるのか確認します。
この結果を受けて、データ移行のスケジュールを決めていきます。
③ 移行設計
移行設計では次のような作業を行います。
- Dropboxフォルダ構成
- 移行元、移行先のマッピング
- アクセス権限の検討
- 移行スケジュールの作成
2. データ移行工程
① 初回データ移行
ファイルサーバからDropboxへ移行設計で決めたフォルダ構成でデータ移行を行います。初回データ移行期間中は、ファイルサーバを使って業務を継続します。
② 差分データ移行
差分データ移行の工程では、ファイルサーバのフォルダを凍結(更新を停止)し、初回データ移行期間中に更新されたデータをDropboxにアップロードします。
③ アクセス権限付与
差分データ移行の最後に、データ移行設計で決めたとおりに、エンドユーザのアクセス権限を付与していきます。
ここから、データ移行の各工程についてもう少し詳しく説明しようと思います。
ファイルサーバ調査の目的
Dropboxはクラウドストレージですので、ファイルサーバと全く同じ構成やアクセス権限設定ができるわけではありません。Dropboxのサービス仕様に合わせたフォルダ構成、アクセス権限設定を設計することがDropboxを円滑に利用していくための重要なポイントとなります。
Dropboxのフォルダ構成を考えるためのインプット情報として、ファイルサーバのフォルダ構成を詳しく調べます。
調査ポイント:
- フォルダ構成
- 階層の深さ
- フォルダの数
- フォルダ毎の保存ファイル数
- アクセス権限の付与状況
など
また、Movebotの移行処理は、次のステップで行われます。
移行元のScanは、移行対象フォルダ、ファイルの情報を読み出すステップです。次に、Dropboxに必要なフォルダを作成します。Dropboxの移行先フォルダの構成を全部作っちゃうわけです。フォルダ作成が完了すると、やっとファイルデータの転送が始まります。このような順序で処理が進みますので、移行スケジュールを作成するためには、移行元のフォルダ数、ファイル数、データ容量を正確に把握することが重要なポイントとなり、それぞれ何分、何時間かかるのかを予測し、移行スケジュールを立てていくことになります。
移行検証の目的
先程も説明したとおり、Movebotは3ステップでデータ移行を進めますので、それぞれ処理時間を見積もっていく必要があります。が処理時間は、お客様環境でMovebotを使ってみないことには正確な見積もりができませんね。移行検証の目的は、実際の処理速度を測って、精度の高い移行スケジュールを作成することです。
Movebotでのデータ転送は、「Movebotのデータ移行構成」の図のとおり下記の経路となります。
- 移行用PCにインストールしたMovebot Agentがファイルサーバからデータを読み込み
- 移行用PCから Worker Region へデータ書込み
- Worker Regionから Dropbox に送信
このような経路で行われるデータ転送に対する変動要素として次のようなものが挙げられます。
- 移行用PCとファイルサーバ間のLANの帯域 (ファイルサーバからのデータ読込速度に影響)
- 移行用PCとGW間のLAN帯域
- 移行用PCのI/O性能
- ファイルサーバのI/O性能
- GWから先のインターネット回線の帯域
- Worker RegionからDropboxへのパフォーマンス (Dropbox APIの性能)
数多くの変動要素があるので、実際データ転送速度がどれくらいになるかは、お客様環境下で実験してみないことにはわかりません。移行検証ではお客様のファイルサーバのデータを使って、データ転送速度の計測を行います。
また、単純なデータ転送速度の計測以外にも、移行用PCの台数やデータ転送の多重度(同時に何ファイル転送できるか)などいろんな組み合わせでデータ転送速度を計測し、最適な構成を決定します。
移行検証の結果を用いて、より正確な移行スケジュールを立てていきます。
移行検証では、どんな検証を行うか、効果のある組み合わせなど、ある程度経験がないと有意義な検証ができないこともあります。また、実際にデータ転送を行うため、Movebotのライセンスが必要になるため、適切な検証計画が重要です。
ここは、「経験がものをいう」ってことでしょうか。
と、このように色々調査して移行スケジュールを立てても、移行段階でスケジュール通りに進まないことも多いんですけどね。
移行設計
移行設計では次のような作業を行います。
- Dropboxフォルダ構成
- 移行元、移行先のマッピング
- アクセス権限の検討
- 移行スケジュールの作成
Dropboxフォルダ構成の設計
ファイルサーバ調査の結果をもとに移行先のDropbox上のフォルダ構成をお客様と一緒に考えていきます。Dropboxのフォルダ構成を考える上では、Dropboxのサービス仕様やアプリの特性などを念頭に考えていく必要があります。このフォルダ構成設計がDropboxの運用時のトラブル回避につながる重要なポイントとなります。
例えば、DropboxではPCに同期するファイル数は30~50万ファイル以下にすることが推奨されています。下図のように、ファイルサーバ上80万ファイルが保存されている「フォルダA」をそのままDropboxに移行してしまうと、「フォルダA」を同期するだけで推奨値を超えてしまうわけです。Dropboxアプリでは任意の階層のフォルダから同期するよう設定することも可能(これを「選択型同期」といいます)ですが、エンドユーザは最上位フォルダからPCに同期するのがほとんどです。なので、家事のような場合は、サブフォルダA1, サブフォルダA2を Dropboxの最上位階層に移行するのがベストです。
また、Dropboxではフォルダ階層を浅く、アクセス権限が最上位フォルダに設定したものからサブフォルダでは変更しない、といった工夫を行うことで、1つの最上位フォルダに保存されるファイル数を少なくすることができます。
下図では、アクセス権限を考慮したフォルダ構成変更例です。
ファイルサーバでは、組織階層を意識したフォルダ構成になっていますが、Dropboxではできるだけ下位の組織を基準に最上位フォルダを用意するといいでしょう。
他にも、Dropboxのシステム仕様、サービス仕様でフォルダ構成に関係するものがいくつかあります。弊社では、Dropboxのフォルダ構成を設計方針をまとめた資料を用意しております。
移行元、移行先のマッピング
Dropboxのフォルダ構成ができたら、Movebotの移行ジョブを作成する際に必要となる、ファイルサーバとDropboxのフォルダのマッピング情報を作成します。ファイルサーバの「どこ」からDropboxの「どこ」へデータを移すのか、という情報ですね。
Movebotでは、移行しないファイルやフォルダを指定することもできますので、非常に柔軟なデータ移行が可能です。
アクセス権限の検討
Dropbox上で誰に、どのフォルダのアクセス権限を付与するか、ファイルサーバでのアクセス権限設定をベースに、Dropboxのフォルダ構成、サービス仕様などを踏まえて、アクセス権限の設計を行っていきます。
移行スケジュールの作成
数10TB, 数100TBといった大規模なデータ移行は、1フェーズ(初回データ移行+差分データ移行+アクセス権限付与の3つをまとめて1フェーズと呼んでます)で移行することは差分データ移行期間を考慮すると、現実的ではありません。弊社では部署単位やプロジェクト単位などファイルサーバのフォルダ構成をふまえ、いくつかのフェーズに分けて段階的に移行する方法をお薦めしています。
段階的な移行では、移行が完了したフォルダを利用するユーザから順次Dropboxの利用を開始することになりますので、移行順序、移行フェーズの検討に加え、アカウント登録やユーザ教育、社内ヘルプデスクの準備なども移行スケジュールの一部として計画します。
これらの移行設計が終われば、実際のデータ移行作業に進んでいきます。
初回データ移行作業
ファイルサーバからDropboxへのデータ移行は、インターネット越しのデータ転送になるためオンプレファイルサーバの移行より長い時間が必要となります。データ移行中、業務を止めるわけにはいかないので、多くの場合ファイルサーバを使って業務を継続し、その裏でデータを進めていくことになります。初回データ移行中に新たに作成されたデータ、更新されたデータは、「差分データ移行」の工程でDropboxに移行し直します。
Dropboxでは、クラウドに保存したデータをPCに同期して利用しますが、データ移行中に同期処理が動くと、ファイルサーバからのデータ転送に加え、データ同期の通信も発生してしまい、ネットワークのトラフィックが増大してしまいます。このため、初回データ移行中は、エンドユーザにアクセス権を付けずに進めます。
差分データ移行
差分データ移行の工程では、ファイルサーバの移行対象フォルダを凍結(更新を停止)し、初回データ移行期間中に新たに作成されたデータ、更新されたデータをDropboxにアップロードします。Movebotには、ファイルサーバとDropboxのデータを比較し、更新されたデータだけを移行するモードがありますので、これを活用して、差分データの移行を行います。
なお、Movebotには初回データ移行で転送したデータがファイルサーバから削除された場合、Dropboxのファイルを消すことができません(執筆時)。弊社では、自社開発したツールで、Dropboxに残った不要データの削除を行っています。
差分データ移行後は、ファイルサーバは利用せず、Dropboxのデータで業務を再開します。差分データを移行したあともファイルサーバでの業務を継続しては、いつまでも移行が終わらないからですね。
このため、差分移行開始時からファイルサーバの更新を停止し、週末2日間で差分データ移行をやり切れるよう、初回データ移行容量を調整する必要もあります。
アクセス権限付与
差分データ移行の最後に、データ移行設計で決めたとおりに、エンドユーザのアクセス権限を付与していきます。アクセス権限付与を行うと、PCへのデータ同期が始まり、Dropboxを使った業務を開始する準備が整います。
差分データ移行後の週明けからDropboxでの業務を開始することになるので、週明けに一斉に同期が始まるとネットワークの負荷が高くなっちゃいます。そこで、差分データ移行開始時にエンドユーザの閲覧用権限(read only)を付与し、差分データ移行中にPCへのデータ同期を進めることで、週明けのネットワーク負荷、ユーザ負荷を分散させることもあります。この場合、差分データ後に閲覧権限から編集権限へのつけ直しを行います。
アクセス権限付与は、対象となるデータ数によって長い時間がかかる場合がありますので、差分データ移行の作業時間の中で、アクセス権限付与のための時間を余裕を持って含めておく必要があります。
アクセス権限付与はなにでする?
Movebotには、データ移行と同時にアクセス権限付与する機能があるのですが、データ移行に合わせてアクセス権限を付与すると同時にPCへの同期が始まったり、データ移行時間が長くなるなどの問題があります。
他の方法として、Dropboxの管理コンソールを使ってアクセス権限を付与する方法があります。が、GUIを使ったアクセス権限設定は画面遷移など煩雑な作業となってしまい、思った以上に大変です。
そこで、弊社では自作のDropbox APIツール「sxtool」を利用してアクセス権限付与を行うようにしています。sxtoolについては、本ブログで取り上げたことがありますので、詳細はそちらの記事を参照してください。
まとめ
今回は、弊社が行っているDropboxへのデータ移行作業について説明致しました。
一見簡単そうに思えるDropboxへのデータ移行ですが、大規模データ移行になると検討課題が増え、作業工数も増大することがわかっていただけたかと思います。本記事を参考に、自分でやってみようと思った方はトライしてみてもいいかも!?
弊社ではいつでもデータ移行のご相談を受け付けております。「自社ではできない!」って思った方は、お気軽に弊社まで相談していただければと思います。