投稿

gzipの--rsyncableについて調べた

とある事情で gzip --rsyncable オプションを確認した話 gzip --rsyncableとは gzip のオプションとして指定できる。 ヘルプにはrsync friendly と記載がある。 何ができるのか gzipでの圧縮ファイルをrsyncで転送する場合に、差分転送が速くなるらしい 詳細は下記のブログが参考になる https://beeznest.com/blog/2005/02/03/rsyncable-gzip/ 先に検証結果 事前に250MBのファイル転送後、同一ファイル名で50MBを追加し2回目の転送した場合を比較した結果 rsyncable n回目 rsync転送量(byte) rsync転送時間 × 1回目(250MB) 256073489 66.04 × 2回目(300MB) 176329187 49.26 ○ 1回目(250MB) 256348182 70.29 ○ 2回目(300MB) 51361684 21.75 およそ2.5倍の速度差がある。 rsyncableオプション無しでもそれなりの差分転送が行われている。 転送時間はほぼ転送量に依存しており、元データが大きく、その差分が少ないほど効果が高いと思われる。 検証(ローカル→リモート) 環境 CentOS 7.4 gzip 1.5 検証内容 250MB程度のtar + gzipファイルを作成 リモートサーバにrsync転送 同名で50MBのファイルを追加しtar + gzipファイルを作成 リモートサーバにrsync転送(1) これを–rsyncableオプション有無で実施し、(1)の転送量、転送時間を比較 ddでファイル作成 50MB のファイルを5個作成 $ mkdir rsyncable-no $ cd rsyncable-no $ for i in `seq 0 4` do dd if=/dev/urandom of=urandom-50MB-$i.dat count=1000 bs=50K done $ cd .. $ cp -pr rsyncable-no rsyncable-yes rsyncab...

gsutil で GCSから S3 にコピーしようとしたらハマった話

gsutilでハマった話。 gsutilはGCSのみならずS3も扱えると聞いていたので、GCSからS3へのコピーに使おうと。 しかしデフォルトではうまくいきませんでした。 ハマりました。 ハマりポイント バケット名にドット(ピリオド)を含む場合 ズバリこれですね。 回避方法 いきなりですが回避方法です。(原因は気が向いたら書きます。) gsutil config で作成される^/.botoファイルに下記を書きましょう。 s3_host は 下記を見て指定しましょう https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region ちなみに東京リージョンは「s3.ap-northeast-1.amazonaws.com」です [Credentials] aws_access_key_id = <Your Access Key Id> aws_secret_access_key = <Your Secret Access Key> s3_host = <Your S3 Hostname> [s3] calling_format = boto.s3.connection.OrdinaryCallingFormat [s3] セクションはデフォルトでは記載がないのですが、ちゃんと使ってくれるみたいです。 複数のs3 ホストを使用する場合は都度.botoを切り替えるか、おとなしくaws cli を使用しましょう。