Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
0
Help us understand the problem. What is going on with this article?
@Kaz_Macintosh

さくらのクラウドのアーカイブを高速にダウンロード&アップロードする方法

More than 1 year has passed since last update.

アーカイブのゾーン間コピーができない!?

北海道で発生した地震の影響で停電が発生し、現在さくらインターネットの石狩データセンターでは、自家発電装置で給電が行われています。しかし燃料が切れるのは時間の問題です。停止を避けるために石狩ゾーンから東京ゾーンにサーバーを移動しようとしている人も多いと思いますが、混雑しているのか、ゾーン間でのアーカイブのコピーでエラーが発生しています。
(※この記事は復旧していない事を前提に書いてます)

そこでさくらが提供しているアーカイブのゾーン間コピーの機能を使わずに、FTPSを使って転送する方法を考えてみました。

アーカイブのゾーン間コピーの流れ

石狩:アーカイブを作成
 ↓
どこか:アーカイブを石狩からダウンロード
 ↓
どこか:アーカイブを東京へアップロード
 ↓
東京:アーカイブからディスクを作成
 ↓
東京:サーバーに接続

ネットが遅いときは?

アーカイブはFTPSでダウンロード/アップロードができますが、プロバイダーの回線経由で何百GBものアーカイブをダウンロードするのは非常に困難です。そこで、さくらのクラウド内に、「ファイル置き場」とするサーバーを立てます。私はCentOS 7で行いました。(6だとlftpがうまくいかなかった)

さくらのクラウドはネットワークが標準では100Mbpsですが、スイッチ+ルーターを追加することで100Mbps〜3000Mbpsまで選べます。お値段も結構しますので、ファイルを転送するときだけ1000Mpbsにする、みたいな感じですかね。

最初にスイッチを作成して、ルーターを有効にします。
次にファイル置き場となるサーバーを作成し、NICの接続先をこのスイッチにします。これで高速にダウンロード/アップロードができるようになりました。

アーカイブのダウンロード

ファイルはSFTPで転送しますので、curlやlftpを使います。私はcurlでやりました。

設定ファイル .lftprc
set ftp:ssl-auth TLS
set ftp:ssl-force true
set ftp:ssl-allow yes
set ftp:ssl-protect-list yes
set ftp:ssl-protect-data yes
set ftp:ssl-protect-fxp yes
set ssl:verify-certificate no
download.sh
#!/bin/bash
DLFILE=archive.img
echo "Download from Sakura archive"
echo -n "Host name? " ; read SERVER
echo -n "User name? " ; read USER
echo -n "Password? "  ; read PASS
curl -u $USER:$PASS --ftp-ssl --ftp-pasv -k --compressed \
  ftp://$SERVER:21/$DLFILE -o $DLFILE

アーカイブのアップロード

curlでやると途中で止まってしまうので、lftpを使いました。

$ lftp
> open ホスト -p 21 -u ユーザー名
Password: 
> put archive.img

この方法で試したところ、50〜70MB/sで転送できました。
さすがに速いですね!

ちなみにcurlでアップロードするスクリプトはこんな感じです。(なぜか途中で止まる)

upload.sh
#!/bin/bash
UPFILE=archive.img
echo "Upload to Sakura archive"
echo -n "Host name? " ; read SERVER
echo -n "User name? " ; read USER
echo -n "Password? "  ; read PASS
curl -u $USER:$PASS --ftp-ssl --ftp-pasv -k --compressed \
  -T $UPFILE ftp://$SERVER:21/
0
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Kaz_Macintosh
iPhoneとMacが大好きです。はじめて買ったMacはLC475。

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
0
Help us understand the problem. What is going on with this article?