web-dev-qa-db-ja.com

LinuxサーバーからS3バケットへの300GBデータの移行

ローカルディスクではなくS3バケットに保存するようにアップロードを変更しているため、AWS StorageS3に転送する必要のある300GBのアップロードファイルがあるLinux専用サーバーがあります。 aws cliコマンドを使用して転送を実行し、ディレクトリをS3バケットにコピーできることを読みました。私の質問は次のとおりです。

  1. Awscliからcpコマンドを実行すると、専用サーバーが300GBのデータをS3バケットに転送するのにどのくらいの時間がかかりますか? S3とサーバーの両方が同じリージョンにあります。

これらは私のサーバーの仕様です:

RAID Policy Raid 1
Operating System    Cloud Linux
HDD Bay 1   480GB SSD
HDD Bay 2   480GB SSD
Network Bandwidth   10TB
CPU 6 Core E5-2620v2 - 2.00Ghz x2
RAM 64 GB

私は多くの変数があることを完全に理解していますが、LinuxサーバーからS3ストレージにデータを移行した人々から大まかな見積もりについて知りたいです。

  1. Aws cli cpコマンドを使用すると、その間の進行状況が表示されますか?コマンドの実行中にSSHから切断された場合はどうなりますか?

  2. cpコマンドを使用してawscli screenコマンドを実行する方が安全ですか?

  3. 転送中、サーバーのパフォーマンスに影響はありますか?このサーバーではいくつかのWebサイトが実行されているので、データ転送中にサイトをオフラインにする必要がありますか、それともサイトが稼働中でも安全に転送を実行できますか?

3
Neel

MLuの答えは良いです、これは彼の答えの代わりではなく、追加です。

MLuが言ったように、300GBはそれほど多くなく、長くはかからないでしょう。 35msの遅延と約350Mbpsの帯域幅が利用可能な接続で、ニュージーランドからシドニーS3に1TBをコピーしましたが、メモリからは約4〜6かかりました。帯域幅が広く、待ち時間が短い可能性があります。約80スレッドを使用して、メモリからXeonコアの約100%を使用しましたが、それほど多くはありません。

s3 sync コマンドを検討する場合があります。停止する必要がある場合は、コピーを再起動するのではなく、簡単に再起動できます。

忙しい本番サーバーでは、 s3構成ファイル のように調整します。速度を犠牲にして帯域幅とCPU使用率を削減します。これは〜.aws\configureまたはc:\ users\username.aws\configに移動します。 CLIプロファイルを使用する場合、これはデフォルトではなく、そのプロファイルに入ります。

いくつかの大きなファイルの構成

[default]
region = us-west-2 
output = json
s3 =
  max_bandwidth = 50MB/s
  max_concurrent_requests = 5
  max_queue_size = 100
  multipart_chunksize = 75MB
  multipart_threshold = 200MB

多くの小さなファイルの構成

[default]
region = us-west-2 
output = json
s3 =
  max_bandwidth = 50MB/s
  max_concurrent_requests = 5
  max_queue_size = 1000
  multipart_chunksize = 75MB
  multipart_threshold = 100MB

これにより、CPU /帯域幅がデフォルトの10の同時要求、1000のキューサイズから削減され、50MB /秒の帯域幅制限(400Mbps)が課されます。好きなように微調整してください-10スレッドで十分かもしれません。 1GB以上の大きなデータファイルをアップロードする傾向があるため、大きなチャンクと小さなキューを使用しますが、ファイルが小さい場合は、最後の3行を削除します。

2つはあなたの質問に直接答えます

  1. 1〜4時間

  2. はい。 「s3sync」を使用すると、より簡単に再起動できます。たとえば、「s3:// bucket-name/\ opt\data&」(&に注意)を実行すると、sshセッションがドロップしても実行され続けると思います。

  3. わからない-MLuはイエスと言う

  4. 上で述べたように、私は60〜80のスレッドを使用し、約1つの完全なXeonコアを使用しました。使用するスレッドが少ないと、使用するリソースも少なくなります。全体として、リソースをあまり消費しません。ファイルをキューに入れる間、最初の数分間はかなり集中的になり、その後、より多くのファイルをキューに入れる間、時々CPUスパイクが発生します。

3
Tim

300GBはそれほど多くありません。 SSDディスクは約100MB /秒の読み取りを実行できます。1Gbpsネットワークを使用している場合も約100MB /秒です。したがって、300GBのアップロードには約1時間かかります。

はい、進行状況が表示されます。はい、screenで実行し、はい、サーバーをロードします。一方、それは1時間だけです。

それが役に立てば幸い:)

4
MLu