S3 を単純ストレージとして 利用する手段の比較

26
S3 を単純ストレージとして 利用する手段の比較 株式会社サイタスマネジメント 米田 真治 1 2016/5/14 JAWS-UG アーキテクチャ専門支部 ハイブリッドクラウド 分科会 CDP議論会 #5

Transcript of S3 を単純ストレージとして 利用する手段の比較

Page 1: S3 を単純ストレージとして 利用する手段の比較

S3 を単純ストレージとして利用する手段の比較株式会社サイタスマネジメント

米田 真治

1

2016

/5/1

4JA

WS-

UG

アーキテクチャ専門支部

ハイブリッドクラウド

分科会

CDP議

論会

#5

Page 2: S3 を単純ストレージとして 利用する手段の比較

自己紹介

•米田 真治 (こめだ しんじ)� 株式会社サイタスマネジメント CTO� 運用エンジニア

• 経歴

� 学生時代にUNIXに出会う

� Internetにつながる環境がきた

� いろんなプログラムをビルドしているうちに、開発・構築の楽しさに目覚める

� 学科のシステム管理を経験

� システム運用のおもしろさを覚える

� 就職してISPのサーバ構築・運用に携わる

� 2000年6月 サイタスマネジメント創業

2016

/5/1

4JAWS-U

G アーキテクチャ専門支部

ハイブリッドクラウド

分科会

CDP議論会

#5

2

Page 3: S3 を単純ストレージとして 利用する手段の比較

バケットをファイルシステムとしてマウントするタイプ• バケット上のオブジェクト ⇔ファイスシステム上のファイル各オブジェクトがそれぞれ一つのファイルとして見えます。

• s3fs - FUSE-based file system backed by Amazon SS� POSIXにかなり近い

� rsync に対応するために、ファイル属性をサポートしている

→ aws cli で s3 sync ができるので、今となっては rsync の必要はないでしょう。

• riofs - userspace S3 filesystem� ファイルスステムとしては Leaky Abstraction� 開発は実質2年前で止まっている模様

• goofys – a faster s3fs written in Go� ファイルスステムとしては Leaky Abstraction� パフォーマンス重視

2016

/5/1

4JA

WS-

UG

アーキテクチャ専門支部

ハイブリッドクラウド

分科会

CDP議

論会

#5

3

Page 4: S3 を単純ストレージとして 利用する手段の比較

ファイルシステムのデータをバケット上に保存するタイプ

• s3ql� ファイルシステム上のファイル → バケット上に複数のチャンクとして保存します。

� ファイルシステムのサイズは動的に変化します。

• s3backer� 透過的に巨大なファイルをエミュレートします。

� ファイルサイズは初期化するときに決定しますがバケット上のオブジェクトはデータブロックを使用したときに割り当てられます。

� データブロック → バケット上のオブジェクト

� ファイルをブロックデバイスとしてマップして、任意のファイルシステムを構築することができます。

どちらも� ローカルキャッシュを利用すれば比較的高速にファイルアクセスが可能です。

� 透過的にファイル圧縮と暗号化をサポートしています。

� 複数箇所から同時にマウントすることはできません。

2016

/5/1

4JA

WS-

UG

アーキテクチャ専門支部

ハイブリッドクラウド

分科会

CDP議

論会

#5

4

Page 5: S3 を単純ストレージとして 利用する手段の比較

ストレージゲートウェイとの比較

• s3ql/s3backer� バケット上に構築したボリュームをローカルファイルシステムとして直接マウントします。

• ストレージゲートウェイ� ボリューム型はiSCSIターゲットとして動作します。

� ストレージゲートウェイ用に仮想アプライアンスが必要です。

� ネイティブサービスです。

2016

/5/1

4JA

WS-

UG

アーキテクチャ専門支部

ハイブリッドクラウド

分科会

CDP議

論会

#5

5

Page 6: S3 を単純ストレージとして 利用する手段の比較

S3QLについて• S3QL is a file system that stores all its data online using storage services

like Google Storage, Amazon S3, or OpenStack. S3QL effectively provides a hard disk of dynamic, infinite capacity that can be accessed from any computer with internet access.

• S3QL is a standard conforming, full featured UNIX file system that is conceptually indistinguishable from any local file system. Furthermore, S3QL has additional features like compression, encryption, data de-duplication, immutable trees and snapshotting which make it especially suitable for online backup and archival.

2016

/5/1

4JA

WS-

UG

アーキテクチャ専門支部

ハイブリッドクラウド

分科会

CDP議

論会

#5

6

Page 7: S3 を単純ストレージとして 利用する手段の比較

S3QLの利用例• オンプレミスからクラウドストレージをデータのバックアップ領域などに利用。

• “リフト・アップ”したのとき、EC2インスタンス上のデータのバックアップ領域などに利用。

� 直接マウントして書き出しができますが、十分なキャッシュ領域を確保しないと性能が出ないため、相応の作業領域が必要です。

� バケット上のオブジェクトとして参照する必要がなければ有効でしょう。

� ローカルキャッシュは書き込みでも使用されるため、s3fsよりは速いです。(write-back)

� たとえば、

� MySQLのInnoDB データをXtraBackupでインクリメンタルバックアップする。

→ それ RDS Restore to Point in Time で、できるよね。

“リフト・アンド・シフト”で、リファクタするときには、そのように変更するのが良いでしょう。

2016

/5/1

4JA

WS-

UG

アーキテクチャ専門支部

ハイブリッドクラウド

分科会

CDP議

論会

#5

7

Page 8: S3 を単純ストレージとして 利用する手段の比較

S3QLインストール• Ubuntu リポジトリのパッケージ Versions: 1.16-1• かなり古いのでソースからビルドしました。

参照 http://www.rath.org/s3ql-docs/installation.html

註) 最新は s3ql-2.18 になっています。

$  wget 'https://bitbucket.org/nikratio/s3ql/downloads/s3ql-­‐2.17.1.tar.bz2’$  sudo apt-­‐get   install   libsqlite3-­‐0 libsqlite3-­‐dev$  sudo apt-­‐get   install   python3-­‐setuptools   python3-­‐pip$  sudo apt-­‐get   install   pkg-­‐config$  sudo apt-­‐get   install   libfuse-­‐dev libattr1-­‐dev$  sudo pip3  install   llfuse$  sudo pip3  install   pycrypto$  sudo pip3  install   defusedxml$  sudo pip3  install   requests$  sudo pip3  install   apsw$  sudo pip3  install   dugong$  sudo pip3  install   pytest$  tar  xfa s3ql-­‐2.17.1.tar.bz2$  cd  s3ql-­‐2.17.1$  python3   setup.py build$  sudo python3   setup.py install  

2016

/5/1

4JA

WS-

UG

アーキテクチャ専門支部

ハイブリッドクラウド

分科会

CDP議

論会

#5

8

Page 9: S3 を単純ストレージとして 利用する手段の比較

mkfs.s3ql#  /usr/local/bin/mkfs.s3ql  s3://s3ql-­‐bucketEnter  backend  login:Enter  backend  passphrase:_do_request():  redirected  to  bucket.s3-­‐region.amazonaws.comBefore  using  S3QL,  make  sure  to  read  the  user's  guide,  especiallythe  'Important  Rules  to  Avoid  Loosing  Data'  section._do_request():  redirected  to bucket.s3-­‐region.amazonaws.comEnter  encryption  password:Confirm  encryption  password:Generating  random  encryption  key...Creating  metadata  tables...Dumping  metadata...Dumping  metadata.....objects....blocks....inodes....inode_blocks....symlink_targets....names....contents....ext_attributes..Compressing  and  uploading  metadata...Wrote  150  bytes  of  compressed  metadata.

Cycling  metadata  backups...Backing  up  old  metadata...Please  store  the  following  master  key  in  a  safe  location.  It  allowsdecryption  of  the  S3QL  file  system  in  case  the  storage  objects  holdingthis  information  get  corrupted:-­‐-­‐-­‐BEGIN  MASTER  KEY-­‐-­‐-­‐XXXXXXXXX-­‐-­‐-­‐END  MASTER  KEY-­‐-­‐-­‐

2016

/5/1

4JA

WS-

UG

アーキテクチャ専門支部

ハイブリッドクラウド

分科会

CDP議

論会

#5

9

Page 10: S3 を単純ストレージとして 利用する手段の比較

クレデンシャル$HOME/.s3ql/authinfo2

[bucket]storage-­‐url:  s3://s3ql-­‐bucketbackend-­‐login: Access  Key  IDbackend-­‐password: Secret  Access  Keyfs-­‐passphrase: passphrase

2016

/5/1

4JA

WS-

UG

アーキテクチャ専門支部

ハイブリッドクラウド

分科会

CDP議

論会

#5

10

Page 11: S3 を単純ストレージとして 利用する手段の比較

mount#  mkdir -­‐p  /var/lib/s3ql/cache    #  mkdir -­‐p /s3/s3ql-­‐fs    #  /usr/local/bin/mount.s3ql  -­‐-­‐cachedir /var/lib/s3ql/cache  s3://s3ql-­‐bucket /s3/s3ql-­‐fs    Using  2  upload  threads.    Autodetected 4058  file  descriptors  available  for  cache  entries    _do_request():  redirected  to  3ql-­‐bucket.s3-­‐ap-­‐northeast-­‐1.amazonaws.com    _do_request():  redirected  to  3ql-­‐bucket.s3-­‐ap-­‐northeast-­‐1.amazonaws.com    Using  cached  metadata.    Setting  cache  size  to  4503  MB    Mounting  s3://s3ql-­‐bucket/  at  /s3/s3ql-­‐fs...

2016

/5/1

4JA

WS-

UG

アーキテクチャ専門支部

ハイブリッドクラウド

分科会

CDP議

論会

#5

11

Page 12: S3 を単純ストレージとして 利用する手段の比較

umountumount するとキャッシュがフラッシュされデータアップロードの分、時間がかかります。

#  cd  /#  time  /usr/local/bin/umount.s3ql  /s3/s3ql-­‐fs/usr/local/bin/umount.s3ql  /s3/s3ql-­‐fs    0.19s  user  0.04s  system  0%  cpu1:15.81  total

変更がないときはすぐに umount が終了します。

#  /usr/local/bin/mount.s3ql  -­‐-­‐cachedir /var/cache/s3ql  s3://s3ql-­‐bucket  /s3/s3ql-­‐fs#  cd  /#  time  /usr/local/bin/umount.s3ql  /s3/s3ql-­‐fs/usr/local/bin/umount.s3ql  /s3/s3ql-­‐fs    0.16s  user  0.04s  system  8%  cpu2.308  total

2016

/5/1

4JA

WS-

UG

アーキテクチャ専門支部

ハイブリッドクラウド

分科会

CDP議

論会

#5

12

Page 13: S3 を単純ストレージとして 利用する手段の比較

速度比較ローカル

%  time  dd if=/dev/urandom of=test  bs=64k  count=10001000+0  records  in1000+0  records  out65536000  bytes  (66  MB)  copied,  6.11013  s,  10.7  MB/sdd if=/dev/urandom of=test  bs=64k  count=1000 0.00s  user  6.03s  system  98%  cpu 6.111  total%  time  dd if=/dev/urandom of=test  bs=64k  count=1000010000+0  records  in10000+0  records  out655360000  bytes  (655  MB)  copied,  62.6933  s,  10.5  MB/sdd if=/dev/urandom of=test  bs=64k  count=10000 0.01s  user  60.09s  system  95%  cpu 1:02.70  totalS3QL#  cd  /s3/s3ql-­‐fs#  time  dd if=/dev/urandom of=test  bs=64k  

count=10001000+0  records  in1000+0  records  out65536000  bytes  (66  MB)  copied,  7.31893  s,  9.0  MB/sdd if=/dev/urandom of=test  bs=64k  count=1000    0.00s  user  6.10s  system  83%  cpu 7.336  total#  time  dd if=/dev/urandom of=test  bs=64k  count=1000010000+0  records  in10000+0  records  out655360000  bytes  (655  MB)  copied,  121.856  s,  5.4  MB/sdd if=/dev/urandom of=test  bs=64k  count=10000    0.01s  user  61.25s  system  42%  cpu 2:25.42  total

2016

/5/1

4JA

WS-

UG

アーキテクチャ専門支部

ハイブリッドクラウド

分科会

CDP議

論会

#5

13

Page 14: S3 を単純ストレージとして 利用する手段の比較

ファイルツリーのコピー#  /usr/local/bin/mount.s3ql  -­‐-­‐cachedir /var/cache/s3ql  s3://s3ql-­‐bucket  /s3/s3ql-­‐fs#  time  mkdir /s3/s3ql-­‐fs/test-­‐dirmkdir /s3/s3ql-­‐fs/test-­‐dir 0.00s  user  0.00s  system  5%  cpu 0.018  total#  time  cp -­‐r  /boot  /lib/modules  /s3/s3ql-­‐fs/test-­‐dir/cp -­‐r  /boot  /lib/modules  /s3/s3ql-­‐fs/test-­‐dir/    0.01s  user  0.18s  system  2%  cpu 7.180  total#  time  du  -­‐sk /s3/s3ql-­‐fs/test-­‐dir/53631      /s3/s3ql-­‐fs/test-­‐dir/du  -­‐sk /s3/s3ql-­‐fs/test-­‐dir/    0.00s  user  0.01s  system  4%  cpu 0.310  total

2016

/5/1

4JA

WS-

UG

アーキテクチャ専門支部

ハイブリッドクラウド

分科会

CDP議

論会

#5

14

Page 15: S3 を単純ストレージとして 利用する手段の比較

ツリーの削除やコピーrm -r ディレクトリ より s3qlrm ディレクトリ を使用しましょう。(効率がよい)

rm -r の場合

#  time  rm -­‐r  /s3/s3ql-­‐fs/test-­‐dir/rm -­‐r  /s3/s3ql-­‐fs/test-­‐dir/    0.00s  user  0.03s  system  0%  cpu 7.071  total#  time  /usr/local/bin/umount.s3ql  /s3/s3ql-­‐fs/usr/local/bin/umount.s3ql  /s3/s3ql-­‐fs    0.14s  user  0.05s  system  11%  cpu1.701  total

s3qlrm の場合

#  time  s3qlrm  /s3/s3ql-­‐fs/test-­‐dirs3qlrm  /s3/s3ql-­‐fs/test-­‐dir 0.14s  user  0.01s  system  30%  cpu 0.489  total#  time  /usr/local/bin/umount.s3ql  /s3/s3ql-­‐fs/usr/local/bin/umount.s3ql  /s3/s3ql-­‐fs    0.16s  user  0.03s  system  11%  cpu1.698  total

ファルシステム内でのコピー

s3qlcp source targetを使えば効率的に処理が行われます。

2016

/5/1

4JA

WS-

UG

アーキテクチャ専門支部

ハイブリッドクラウド

分科会

CDP議

論会

#5

15

Page 16: S3 を単純ストレージとして 利用する手段の比較

cp –rとrm –r の 速度#  time  cp -­‐r  /boot  /lib/modules  /s3/s3ql-­‐fs/test-­‐dir/cp -­‐r  /boot  /lib/modules  /s3/s3ql-­‐fs/test-­‐dir/    0.01s  user  0.18s  system  2%  cpu 7.180  total# time  rm -­‐r  /s3/s3ql-­‐fs/test-­‐dir/rm -­‐r  /s3/s3ql-­‐fs/test-­‐dir/    0.00s  user  0.03s  system  0%  cpu 7.071  total#  time  /usr/local/bin/umount.s3ql  /s3/s3ql-­‐fs/usr/local/bin/umount.s3ql  /s3/s3ql-­‐fs    0.14s  user  0.05s  system  11%  cpu1.701  total

#  /usr/local/bin/mount.s3ql  -­‐-­‐cachedir /var/cache/s3ql  s3://s3ql-­‐bucket  /s3/s3ql-­‐fs#  time  cp -­‐r  /boot  /lib/modules  /s3/s3ql-­‐fs/test-­‐dir/cp -­‐r  /boot  /lib/modules  /s3/s3ql-­‐fs/test-­‐dir/    0.03s  user  0.13s  system  3%  cpu 4.611  total#  time  /usr/local/bin/umount.s3ql  /s3/s3ql-­‐fs/usr/local/bin/umount.s3ql  /s3/s3ql-­‐fs    0.14s  user  0.06s  system  0%  cpu58.982  total

2016

/5/1

4JA

WS-

UG

アーキテクチャ専門支部

ハイブリッドクラウド

分科会

CDP議

論会

#5

16

Page 17: S3 を単純ストレージとして 利用する手段の比較

s3fs/riofs/goofys 比較EC2インスタンスから実施

テストデータサイズ#  du  -­‐sk /boot  /lib/modules25044 /boot30724 /lib/modules#  find  /boot  /lib/modules  -­‐type  f  -­‐print  |  wc -­‐l995

事前に一度cp -­‐r  /boot  /lib/modules  /s3/test-­‐bucket/test-­‐dir/を実行してファイルをキャッシュに載せています。

2016

/5/1

4JA

WS-

UG

アーキテクチャ専門支部

ハイブリッドクラウド

分科会

CDP議

論会

#5

17

Page 18: S3 を単純ストレージとして 利用する手段の比較

s3fs#  /usr/local/bin/s3fs  test-­‐bucket  /s3/test-­‐bucket  -­‐o  rw,allow_other,use_cache=/var/cache/s3fs#  mkdir /s3/test-­‐bucket/test-­‐dir#  time  cp -­‐r  /boot  /lib/modules  /s3/test-­‐bucket/test-­‐dir/                              cp -­‐r  /boot  /lib/modules  /s3/test-­‐bucket/test-­‐dir 0.02s  user  0.16s  system  0%  cpu 4:26.14  total#  time  rm -­‐r  /s3/test-­‐bucket/test-­‐dirrm -­‐r  /s3/test-­‐bucket/test-­‐dir 0.01s  user  0.04s  system  0%  cpu 1:10.38  total#  fusermount -­‐u  /s3/test-­‐bucket

2016

/5/1

4JA

WS-

UG

アーキテクチャ専門支部

ハイブリッドクラウド分科会

CD

P議論会

#5

18

Page 19: S3 を単純ストレージとして 利用する手段の比較

s3fs  cpioでコピー#  time  find  boot  lib/modules  -­‐print  |  cpio -­‐pdm /s3/test-­‐bucket/test-­‐dir106782  blocksfind  boot  lib/modules  -­‐print    0.00s  user  0.00s  system  83%  cpu 0.003  totalcpio -­‐pdm /s3/test-­‐bucket/test-­‐dir 0.10s  user  0.81s  system  0%  cpu 9:23.19  total#  time  rm -­‐r  /s3/test-­‐bucket/test-­‐dirrm -­‐r  /s3/test-­‐bucket/test-­‐dir 0.00s  user  0.04s  system  0%  cpu 52.469  total

2016

/5/1

4JA

WS-

UG

アーキテクチャ専門支部

ハイブリッドクラウド分科会

CD

P議論会

#5

19

Page 20: S3 を単純ストレージとして 利用する手段の比較

riofs#  /usr/local/bin/riofs test-­‐bucket   /s3/test-­‐bucket#  mkdir /s3/test-­‐bucket/test-­‐dir#  time  cp -­‐r  /boot  /lib/modules   /s3/test-­‐bucket/test-­‐dir/                  cp:  error  writing   ‘/s3/test-­‐bucket/test-­‐dir/modules/3.13.0-­‐48-­‐generic/kernel/arch/x86/kvm/kvm.ko’:   No  such  file  or  directorycp:  error  writing   ‘/s3/test-­‐bucket/test-­‐dir/modules/3.13.0-­‐48-­‐generic/kernel/arch/x86/kvm/kvm-­‐amd.ko’:   No  such  file  or  directory

:  (以下略)コピーエラーがザクザク出るcp -­‐r  /boot  /lib/modules   /s3/test-­‐bucket/test-­‐dir/    0.01s  user  0.11s  system  0%  cpu 31.318  total#  time  rm -­‐r  /s3/test-­‐bucket/test-­‐dirrm:  cannot  remove   ‘/s3/test-­‐bucket/test-­‐dir/boot/grub/i386-­‐pc/cmdline_cat_test.mod’:   No  such  file  or  directoryrm:  cannot  remove   ‘/s3/test-­‐bucket/test-­‐dir/boot/grub/i386-­‐pc/mda_text.mod’:   No  such  file  or  directory

:  (以下略)削除エラーがザクザク出るrm -­‐r  /s3/test-­‐bucket/test-­‐dir 0.03s  user  0.03s  system   0%  cpu 47.312  total

2016

/5/1

4JA

WS-

UG

アーキテクチャ専門支部

ハイブリッドクラウド

分科会

CDP議

論会

#5

20

Page 21: S3 を単純ストレージとして 利用する手段の比較

riofs cpioでコピー#  time  find  boot  lib/modules  -­‐print  |  cpio -­‐pdm /s3/test-­‐bucket/test-­‐dir106782  blocksfind  boot  lib/modules  -­‐print    0.00s  user  0.00s  system  6%  cpu 0.046  totalcpio -­‐pdm /s3/test-­‐bucket/test-­‐dir 0.08s  user  0.69s  system  2%  cpu33.614  total#  time  rm -­‐r  /s3/test-­‐bucket/test-­‐dirrm:  cannot  remove  ‘/s3/test-­‐bucket/test-­‐dir/boot/grub/i386-­‐pc/cmdline_cat_test.mod’:  No  such  file  or  directoryrm:  cannot  remove  ‘/s3/test-­‐bucket/test-­‐dir/boot/grub/i386-­‐pc/mda_text.mod’:  No  such  file  or  directory

:  (以下略)削除エラーがザクザク出るのは一緒

rm -­‐r  /s3/test-­‐bucket/test-­‐dir 0.02s  user  0.04s  system  0%  cpu46.314  total

2016

/5/1

4JA

WS-

UG

アーキテクチャ専門支部

ハイブリッドクラウド

分科会

CDP議

論会

#5

21

Page 22: S3 を単純ストレージとして 利用する手段の比較

goofys#  /usr/local/bin/goofys test-­‐bucket  /s3/test-­‐bucket#  mkdir /s3/test-­‐bucket/test-­‐dir#  time  cp -­‐r  /boot  /lib/modules  /s3/test-­‐bucket/test-­‐dircp:  cannot  create  symbolic  link  ‘/s3/test-­‐bucket/test-­‐dir/modules/3.13.0-­‐48-­‐generic/build’:  Function  not  implementedcp:  error  writing  ‘/s3/test-­‐bucket/test-­‐dir/modules/3.13.0-­‐48-­‐generic/kernel/arch/x86/kvm/kvm.ko’:  Invalid  argumentcp:  failed  to  close  ‘/s3/test-­‐bucket/test-­‐dir/modules/3.13.0-­‐48-­‐generic/kernel/arch/x86/kvm/kvm.ko’:  Invalid  argument

:  (以下略)  コピーエラーがザクザク出る

cp -­‐r  /boot  /lib/modules  /s3/test-­‐bucket/test-­‐dir 0.03s  user  0.12s  system  0%  cpu 1:24.36  total#  time  rm -­‐r  /s3/test-­‐bucket/test-­‐dirrm -­‐r  /s3/test-­‐bucket/test-­‐dir 0.00s  user  0.05s  system  0%  cpu39.570  total#  fusermount -­‐u  /s3/test-­‐bucket  

2016

/5/1

4JA

WS-

UG

アーキテクチャ専門支部

ハイブリッドクラウド

分科会

CDP議

論会

#5

22

Page 23: S3 を単純ストレージとして 利用する手段の比較

エラーメッセージ#  grep goofys /var/log/syslog   |  grep fuse.ERROR |  head  -­‐5May  10  18:45:50   ops-­‐hub  /usr/local/bin/goofys[2479]:   fuse.ERRORWriteFile:   only  sequential   writes  supported   338  test-­‐dir/modules/3.13.0-­‐48-­‐generic/kernel/arch/x86/kvm/kvm.ko [327680  331776]May  10  18:45:50   ops-­‐hub  /usr/local/bin/goofys[2479]:   fuse.ERRORWriteFile:   only  sequential   writes  supported   339  test-­‐dir/modules/3.13.0-­‐48-­‐generic/kernel/arch/x86/kvm/kvm-­‐amd.ko [36864  40960]May  10  18:45:50   ops-­‐hub  /usr/local/bin/goofys[2479]:   fuse.ERRORWriteFile:   only  sequential   writes  supported   340  test-­‐dir/modules/3.13.0-­‐48-­‐generic/kernel/arch/x86/kvm/kvm-­‐intel.ko [61440  69632]May  10  18:45:52   ops-­‐hub  /usr/local/bin/goofys[2479]:   fuse.ERRORWriteFile:   only  sequential   writes  supported   368  test-­‐dir/modules/3.13.0-­‐48-­‐generic/kernel/crypto/tcrypt.ko [20480  24576]May  10  18:46:06   ops-­‐hub  /usr/local/bin/goofys[2479]:   fuse.ERRORWriteFile:   only  sequential   writes  supported   561  test-­‐dir/modules/3.13.0-­‐48-­‐generic/kernel/drivers/md/bcache/bcache.ko[176128   180224]

2016

/5/1

4JA

WS-

UG

アーキテクチャ専門支部

ハイブリッドクラウド

分科会

CDP議

論会

#5

23

Page 24: S3 を単純ストレージとして 利用する手段の比較

goofys cpioでコピー#  time  find  boot  lib/modules  -­‐print  |  cpio -­‐pdm /s3/test-­‐bucket/test-­‐dircpio:  /usr/src/linux-­‐headers-­‐3.13.0-­‐48-­‐generic:  Cannot  create  symlink to  `/s3/test-­‐bucket/test-­‐dir/lib/modules/3.13.0-­‐48-­‐generic/build':  Function  not  implemented106782  blocksfind  boot  lib/modules  -­‐print    0.00s  user  0.00s  system  14%  cpu0.019  totalcpio -­‐pdm /s3/test-­‐bucket/test-­‐dir 0.07s  user  0.55s  system  0%  cpu2:03.93  total#  time  rm -­‐r  /s3/test-­‐bucket/test-­‐dirrm -­‐r  /s3/test-­‐bucket/test-­‐dir 0.02s  user  0.03s  system  0%  cpu46.708  total#  fusermount -­‐u  /s3/test-­‐bucket  

2016

/5/1

4JA

WS-

UG

アーキテクチャ専門支部

ハイブリッドクラウド

分科会

CDP議

論会

#5

24

Page 25: S3 を単純ストレージとして 利用する手段の比較

AWS  CLIコピー

#  time  aws s3  cp /boot  s3://test-­‐bucket/test-­‐dir -­‐-­‐recursiveaws s3  cp /boot  s3://test-­‐bucket/test-­‐dir -­‐-­‐recursive    0.97s  user  0.07s  system  30%  cpu 3.431  total#  time  aws s3  cp /lib/modules  s3://test-­‐bucket/test-­‐dir -­‐-­‐recursiveaws s3  cp /lib/modules  s3://test-­‐bucket/test-­‐dir -­‐-­‐recursive    37.73s  user  3.00s  system  39%  cpu 1:43.51  total

削除

#  time  aws s3  rm s3://test-­‐bucket/test-­‐dir -­‐-­‐recursiveaws s3  rm s3://test-­‐bucket/test-­‐dir -­‐-­‐recursive    36.13s  user  1.43s  system  58%  cpu 1:04.68  total

2016

/5/1

4JA

WS-

UG

アーキテクチャ専門支部

ハイブリッドクラウド

分科会

CDP議

論会

#5

25

Page 26: S3 を単純ストレージとして 利用する手段の比較

実行時間

cp -­r   rm -­r find+cpio rm -­rs3fs 4:26.14  秒 1:10.38  秒 9:23.10  秒 52.47  秒riofs × 32.89  秒 × 47.31  秒 33.61  秒 ×46.31  秒goofys ×1:24.36  秒 39.57  秒 2:03.93  秒 46.71  秒aws cli 1:46.94  秒 1:04.68  秒s3ql 7.18  秒 7.07 秒

2016

/5/1

4JA

WS-

UG

アーキテクチャ専門支部

ハイブリッドクラウド

分科会

CDP議

論会

#5

26

普通のファイルシステムのつもりで使ってはいけません。ファイルアクセスのパターンによってはエラーが起きます。

cpコマンドは効率を上げるため、mmapしているはず。

aws cli の使い勝手がよくなっており、意外と悪くない結果

× は実行時にエラーが発生したものそれぞれ1回だけの実行時間であり、定量的な測定値ではありません

umount時 58.98 秒