SlideShare a Scribd company logo
S3 を単純ストレージとして
利用する手段の比較
株式会社サイタスマネジメント
米田 真治
1
2016/5/14
JAWS-UGアーキテクチャ専門支部ハイブリッドクラウド
分科会CDP議論会#5
自己紹介
• 米田 真治 (こめだ しんじ)
– 株式会社サイタスマネジメント CTO
– 運用エンジニア
• 経歴
– 学生時代にUNIXに出会う
– Internetにつながる環境がきた
– いろんなプログラムをビルドしているうちに、
開発・構築の楽しさに目覚める
– 学科のシステム管理を経験
– システム運用のおもしろさを覚える
– 就職してISPのサーバ構築・運用に携わる
– 2000年6月 サイタスマネジメント創業
2016/5/14JAWS-UGアーキテクチャ専門支部ハイブリッドクラウド
分科会CDP議論会#5
2
バケットをファイルシステムとして
マウントするタイプ
• バケット上のオブジェクト ⇔ ファイスシステム上のファイル
各オブジェクトがそれぞれ一つのファイルとして見えます。
• 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/14
JAWS-UGアーキテクチャ専門支部ハイブリッドクラウド
分科会CDP議論会#5
3
ファイルシステムのデータを
バケット上に保存するタイプ
• s3ql
– ファイルシステム上のファイル → バケット上に複数のチャンクとして保存します。
– ファイルシステムのサイズは動的に変化します。
• s3backer
– 透過的に巨大なファイルをエミュレートします。
– ファイルサイズは初期化するときに決定しますがバケット上のオブジェクトはデータブ
ロックを使用したときに割り当てられます。
– データブロック → バケット上のオブジェクト
– ファイルをブロックデバイスとしてマップして、任意のファイルシステムを構築するこ
とができます。
どちらも
– ローカルキャッシュを利用すれば比較的高速にファイルアクセスが可能です。
– 透過的にファイル圧縮と暗号化をサポートしています。
– 複数箇所から同時にマウントすることはできません。
2016/5/14
JAWS-UGアーキテクチャ専門支部ハイブリッドクラウド
分科会CDP議論会#5
4
ストレージゲートウェイとの比較
• s3ql/s3backer
– バケット上に構築したボリュームをローカルファイルシステムとして
直接マウントします。
• ストレージゲートウェイ
– ボリューム型はiSCSIターゲットとして動作します。
– ストレージゲートウェイ用に仮想アプライアンスが必要です。
– ネイティブサービスです。
2016/5/14
JAWS-UGアーキテクチャ専門支部ハイブリッドクラウド
分科会CDP議論会#5
5
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/14
JAWS-UGアーキテクチャ専門支部ハイブリッドクラウド
分科会CDP議論会#5
6
S3QLの利用例
• オンプレミスからクラウドストレージをデータのバックアップ領域などに利用。
• “リフト・アップ”したのとき、EC2インスタンス上のデータのバックアップ
領域などに利用。
– 直接マウントして書き出しができますが、十分なキャッシュ領域を確保しな
いと性能が出ないため、相応の作業領域が必要です。
– バケット上のオブジェクトとして参照する必要がなければ有効でしょう。
– ローカルキャッシュは書き込みでも使用されるため、s3fsよりは速いです。
(write-back)
– たとえば、
– MySQLのInnoDB データをXtraBackupでインクリメンタルバックアップする。
→ それ RDS Restore to Point in Time で、できるよね。
“リフト・アンド・シフト”で、リファクタするときには、
そのように変更するのが良いでしょう。
2016/5/14
JAWS-UGアーキテクチャ専門支部ハイブリッドクラウド
分科会CDP議論会#5
7
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/14
JAWS-UGアーキテクチャ専門支部ハイブリッドクラウド
分科会CDP議論会#5
8
mkfs.s3ql
#  /usr/local/bin/mkfs.s3ql  s3://s3ql-­‐
bucket
Enter  backend  login:
Enter  backend  passphrase:
_do_request():  redirected  to  bucket.s3-­‐
region.amazonaws.com
Before  using  S3QL,  make  sure  to  read  the  
user's  guide,  especially
the  'Important  Rules  to  Avoid  Loosing  
Data'  section.
_do_request():  redirected  to bucket.s3-­‐
region.amazonaws.com
Enter  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  allows
decryption  of  the  S3QL  file  system  in  case  
the  storage  objects  holding
this  information  get  corrupted:
-­‐-­‐-­‐BEGIN  MASTER  KEY-­‐-­‐-­‐
XXXXXXXXX
-­‐-­‐-­‐END  MASTER  KEY-­‐-­‐-­‐
2016/5/14
JAWS-UGアーキテクチャ専門支部ハイブリッドクラウド
分科会CDP議論会#5
9
クレデンシャル
$HOME/.s3ql/authinfo2
[bucket]
storage-­‐url:  s3://s3ql-­‐bucket
backend-­‐login: Access  Key  ID
backend-­‐password: Secret  Access  Key
fs-­‐passphrase: passphrase
2016/5/14
JAWS-UGアーキテクチャ専門支部ハイブリッドクラウド
分科会CDP議論会#5
10
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/14
JAWS-UGアーキテクチャ専門支部ハイブリッドクラウド
分科会CDP議論会#5
11
umount
umount するとキャッシュがフラッシュされデータアップロードの分、時間がかかります。
#  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%  cpu
1: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%  cpu
2.308  total
2016/5/14
JAWS-UGアーキテクチャ専門支部ハイブリッドクラウド
分科会CDP議論会#5
12
速度比較
ローカル
%  time  dd if=/dev/urandom of=test  bs=64k  
count=1000
1000+0  records  in
1000+0  records  out
65536000  bytes  (66  MB)  copied,  6.11013  s,  
10.7  MB/s
dd 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=10000
10000+0  records  in
10000+0  records  out
655360000  bytes  (655  MB)  copied,  62.6933  s,  
10.5  MB/s
dd if=/dev/urandom of=test  bs=64k  
count=10000 0.01s  user  60.09s  system  95%  
cpu 1:02.70  total
S3QL
#  cd  /s3/s3ql-­‐fs
#  time  dd if=/dev/urandom of=test  bs=64k  
count=1000
1000+0  records  in
1000+0  records  out
65536000  bytes  (66  MB)  copied,  7.31893  s,  
9.0  MB/s
dd 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=10000
10000+0  records  in
10000+0  records  out
655360000  bytes  (655  MB)  copied,  121.856  s,  
5.4  MB/s
dd if=/dev/urandom of=test  bs=64k  
count=10000    0.01s  user  61.25s  system  42%  
cpu 2:25.42  total
2016/5/14
JAWS-UGアーキテクチャ専門支部ハイブリッドクラウド
分科会CDP議論会#5
13
ファイルツリーのコピー
#  /usr/local/bin/mount.s3ql  -­‐-­‐cachedir /var/cache/s3ql  s3://s3ql-­‐
bucket  /s3/s3ql-­‐fs
#  time  mkdir /s3/s3ql-­‐fs/test-­‐dir
mkdir /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/14
JAWS-UGアーキテクチャ専門支部ハイブリッドクラウド
分科会CDP議論会#5
14
ツリーの削除やコピー
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%  cpu
1.701  total
s3qlrm の場合
#  time  s3qlrm  /s3/s3ql-­‐fs/test-­‐dir
s3qlrm  /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%  cpu
1.698  total
ファルシステム内でのコピー
s3qlcp source target を使えば効率的に処理が行われます。
2016/5/14
JAWS-UGアーキテクチャ専門支部ハイブリッドクラウド
分科会CDP議論会#5
15
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%  cpu
1.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%  cpu
58.982  total
2016/5/14
JAWS-UGアーキテクチャ専門支部ハイブリッドクラウド
分科会CDP議論会#5
16
s3fs/riofs/goofys 比較
EC2インスタンスから実施
テストデータサイズ
#  du  -­‐sk /boot  /lib/modules
25044 /boot
30724 /lib/modules
#  find  /boot  /lib/modules  -­‐type  f  -­‐print  |  wc -­‐l
995
事前に一度
cp -­‐r  /boot  /lib/modules  /s3/test-­‐bucket/test-­‐dir/
を実行してファイルをキャッシュに載せています。
2016/5/14
JAWS-UGアーキテクチャ専門支部ハイブリッドクラウド
分科会CDP議論会#5
17
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-­‐dir
rm -­‐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/14
JAWS-UGアーキテクチャ専門支部ハイブリッドクラウド分科会
CDP議論会#5
18
s3fs  cpioでコピー
#  time  find  boot  lib/modules  -­‐print  |  cpio -­‐pdm /s3/test-­‐bucket/test-­‐dir
106782  blocks
find  boot  lib/modules  -­‐print    0.00s  user  0.00s  system  83%  cpu 0.003  total
cpio -­‐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-­‐dir
rm -­‐r  /s3/test-­‐bucket/test-­‐dir 0.00s  user  0.04s  system  0%  cpu 52.469  
total
2016/5/14
JAWS-UGアーキテクチャ専門支部ハイブリッドクラウド分科会
CDP議論会#5
19
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  directory
cp:  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-­‐dir
rm:  cannot   remove   ‘/s3/test-­‐bucket/test-­‐dir/boot/grub/i386-­‐
pc/cmdline_cat_test.mod’:   No  such  file   or  directory
rm:  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/14
JAWS-UGアーキテクチャ専門支部ハイブリッドクラウド
分科会CDP議論会#5
20
riofs cpioでコピー
#  time  find  boot  lib/modules  -­‐print  |  cpio -­‐pdm /s3/test-­‐
bucket/test-­‐dir
106782  blocks
find  boot  lib/modules  -­‐print    0.00s  user  0.00s  system  6%  cpu 0.046  
total
cpio -­‐pdm /s3/test-­‐bucket/test-­‐dir 0.08s  user  0.69s  system  2%  cpu
33.614  total
#  time  rm -­‐r  /s3/test-­‐bucket/test-­‐dir
rm:  cannot  remove  ‘/s3/test-­‐bucket/test-­‐dir/boot/grub/i386-­‐
pc/cmdline_cat_test.mod’:  No  such  file  or  directory
rm:  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%  cpu
46.314  total
2016/5/14
JAWS-UGアーキテクチャ専門支部ハイブリッドクラウド
分科会CDP議論会#5
21
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-­‐dir
cp:  cannot  create  symbolic  link  ‘/s3/test-­‐bucket/test-­‐
dir/modules/3.13.0-­‐48-­‐generic/build’:  Function  not  implemented
cp:  error  writing  ‘/s3/test-­‐bucket/test-­‐dir/modules/3.13.0-­‐48-­‐
generic/kernel/arch/x86/kvm/kvm.ko’:  Invalid  argument
cp:  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-­‐dir
rm -­‐r  /s3/test-­‐bucket/test-­‐dir 0.00s  user  0.05s  system  0%  cpu
39.570  total
#  fusermount -­‐u  /s3/test-­‐bucket  
2016/5/14
JAWS-UGアーキテクチャ専門支部ハイブリッドクラウド
分科会CDP議論会#5
22
エラーメッセージ
#  grep goofys /var/log/syslog   |  grep fuse.ERROR |  head  -­‐5
May  10  18:45:50   ops-­‐hub   /usr/local/bin/goofys[2479]:   fuse.ERROR
WriteFile:   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.ERROR
WriteFile:   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.ERROR
WriteFile:   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.ERROR
WriteFile:   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.ERROR
WriteFile:   only   sequential   writes   supported   561  test-­‐
dir/modules/3.13.0-­‐48-­‐generic/kernel/drivers/md/bcache/bcache.ko
[176128   180224]
2016/5/14
JAWS-UGアーキテクチャ専門支部ハイブリッドクラウド
分科会CDP議論会#5
23
goofys cpioでコピー
#  time  find  boot  lib/modules  -­‐print  |  cpio -­‐pdm /s3/test-­‐
bucket/test-­‐dir
cpio:  /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  implemented
106782  blocks
find  boot  lib/modules  -­‐print    0.00s  user  0.00s  system  14%  cpu
0.019  total
cpio -­‐pdm /s3/test-­‐bucket/test-­‐dir 0.07s  user  0.55s  system  0%  cpu
2:03.93  total
#  time  rm -­‐r  /s3/test-­‐bucket/test-­‐dir
rm -­‐r  /s3/test-­‐bucket/test-­‐dir 0.02s  user  0.03s  system  0%  cpu
46.708  total
#  fusermount -­‐u  /s3/test-­‐bucket  
2016/5/14
JAWS-UGアーキテクチャ専門支部ハイブリッドクラウド
分科会CDP議論会#5
24
AWS  CLI
コピー
#  time  aws s3  cp /boot  s3://test-­‐bucket/test-­‐dir -­‐-­‐recursive
aws 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 -­‐-­‐
recursive
aws 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 -­‐-­‐recursive
aws s3  rm s3://test-­‐bucket/test-­‐dir -­‐-­‐recursive    36.13s  user  1.43s  
system  58%  cpu 1:04.68  total
2016/5/14
JAWS-UGアーキテクチャ専門支部ハイブリッドクラウド
分科会CDP議論会#5
25
実行時間
cp -­r   rm -­r find+cpio rm -­r
s3fs 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/14
JAWS-UGアーキテクチャ専門支部ハイブリッドクラウド
分科会CDP議論会#5
26
普通のファイルシステムのつもりで使ってはいけません。
ファイルアクセスのパターンによってはエラーが起きます。
cpコマンドは効率を上げるため、mmapしているはず。
aws cli の使い勝手がよくなっており、意外と悪くない結果
× は実行時にエラーが発生したものそれぞれ1回だけの実行時間であり、
定量的な測定値ではありません
umount時 58.98 秒

More Related Content

What's hot

EKS Anywhere on vSphere
EKS Anywhere on vSphereEKS Anywhere on vSphere
EKS Anywhere on vSphere
Masanori Nara
 
Sql server パーティション 概要
Sql server パーティション 概要Sql server パーティション 概要
Sql server パーティション 概要Masayuki Ozawa
 
Best Practices for Running PostgreSQL on AWS
Best Practices for Running PostgreSQL on AWSBest Practices for Running PostgreSQL on AWS
Best Practices for Running PostgreSQL on AWS
Amazon Web Services Japan
 
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
Amazon Web Services Japan
 
AWSにおけるバッチ処理の ベストプラクティス - Developers.IO Meetup 05
AWSにおけるバッチ処理の ベストプラクティス - Developers.IO Meetup 05AWSにおけるバッチ処理の ベストプラクティス - Developers.IO Meetup 05
AWSにおけるバッチ処理の ベストプラクティス - Developers.IO Meetup 05都元ダイスケ Miyamoto
 
Black Belt Online Seminar AWS Amazon S3
Black Belt Online Seminar AWS Amazon S3Black Belt Online Seminar AWS Amazon S3
Black Belt Online Seminar AWS Amazon S3
Amazon Web Services Japan
 
Day 1 with Amazon Web Services - AWSご利用開始時に最低限おさえておきたい10のこと
Day 1 with Amazon Web Services - AWSご利用開始時に最低限おさえておきたい10のことDay 1 with Amazon Web Services - AWSご利用開始時に最低限おさえておきたい10のこと
Day 1 with Amazon Web Services - AWSご利用開始時に最低限おさえておきたい10のこと
Amazon Web Services Japan
 
Zabbix最新情報 ~Zabbix 6.0に向けて~ @OSC2021 Online/Fall
Zabbix最新情報 ~Zabbix 6.0に向けて~ @OSC2021 Online/FallZabbix最新情報 ~Zabbix 6.0に向けて~ @OSC2021 Online/Fall
Zabbix最新情報 ~Zabbix 6.0に向けて~ @OSC2021 Online/Fall
Atsushi Tanaka
 
AWS Black Belt Online Seminar 2016 AWS上でのファイルサーバ構築
AWS Black Belt Online Seminar 2016 AWS上でのファイルサーバ構築AWS Black Belt Online Seminar 2016 AWS上でのファイルサーバ構築
AWS Black Belt Online Seminar 2016 AWS上でのファイルサーバ構築
Amazon Web Services Japan
 
Amazon Aurora Deep Dive (김기완) - AWS DB Day
Amazon Aurora Deep Dive (김기완) - AWS DB DayAmazon Aurora Deep Dive (김기완) - AWS DB Day
Amazon Aurora Deep Dive (김기완) - AWS DB Day
Amazon Web Services Korea
 
Awsでつくるapache kafkaといろんな悩み
Awsでつくるapache kafkaといろんな悩みAwsでつくるapache kafkaといろんな悩み
Awsでつくるapache kafkaといろんな悩み
Keigo Suda
 
20190911 AWS Black Belt Online Seminar AWS Batch
20190911 AWS Black Belt Online Seminar AWS Batch20190911 AWS Black Belt Online Seminar AWS Batch
20190911 AWS Black Belt Online Seminar AWS Batch
Amazon Web Services Japan
 
20190226 AWS Black Belt Online Seminar Amazon WorkSpaces
20190226 AWS Black Belt Online Seminar Amazon WorkSpaces20190226 AWS Black Belt Online Seminar Amazon WorkSpaces
20190226 AWS Black Belt Online Seminar Amazon WorkSpaces
Amazon Web Services Japan
 
Ingress on Azure Kubernetes Service
Ingress on Azure Kubernetes ServiceIngress on Azure Kubernetes Service
Ingress on Azure Kubernetes Service
Toru Makabe
 
AWS Black Belt Online Seminar 2016 AWS CloudFormation
AWS Black Belt Online Seminar 2016 AWS CloudFormationAWS Black Belt Online Seminar 2016 AWS CloudFormation
AWS Black Belt Online Seminar 2016 AWS CloudFormation
Amazon Web Services Japan
 
AWS Black Belt Online Seminar AWS Direct Connect
AWS Black Belt Online Seminar AWS Direct ConnectAWS Black Belt Online Seminar AWS Direct Connect
AWS Black Belt Online Seminar AWS Direct Connect
Amazon Web Services Japan
 
実環境にTerraform導入したら驚いた
実環境にTerraform導入したら驚いた実環境にTerraform導入したら驚いた
実環境にTerraform導入したら驚いた
Akihiro Kuwano
 
セキュリティ設計の頻出論点
セキュリティ設計の頻出論点セキュリティ設計の頻出論点
セキュリティ設計の頻出論点
Tomohiro Nakashima
 
AWS Black Belt Techシリーズ Amazon VPC
AWS Black Belt Techシリーズ Amazon VPCAWS Black Belt Techシリーズ Amazon VPC
AWS Black Belt Techシリーズ Amazon VPC
Amazon Web Services Japan
 
20200212 AWS Black Belt Online Seminar AWS Systems Manager
20200212 AWS Black Belt Online Seminar AWS Systems Manager20200212 AWS Black Belt Online Seminar AWS Systems Manager
20200212 AWS Black Belt Online Seminar AWS Systems Manager
Amazon Web Services Japan
 

What's hot (20)

EKS Anywhere on vSphere
EKS Anywhere on vSphereEKS Anywhere on vSphere
EKS Anywhere on vSphere
 
Sql server パーティション 概要
Sql server パーティション 概要Sql server パーティション 概要
Sql server パーティション 概要
 
Best Practices for Running PostgreSQL on AWS
Best Practices for Running PostgreSQL on AWSBest Practices for Running PostgreSQL on AWS
Best Practices for Running PostgreSQL on AWS
 
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
 
AWSにおけるバッチ処理の ベストプラクティス - Developers.IO Meetup 05
AWSにおけるバッチ処理の ベストプラクティス - Developers.IO Meetup 05AWSにおけるバッチ処理の ベストプラクティス - Developers.IO Meetup 05
AWSにおけるバッチ処理の ベストプラクティス - Developers.IO Meetup 05
 
Black Belt Online Seminar AWS Amazon S3
Black Belt Online Seminar AWS Amazon S3Black Belt Online Seminar AWS Amazon S3
Black Belt Online Seminar AWS Amazon S3
 
Day 1 with Amazon Web Services - AWSご利用開始時に最低限おさえておきたい10のこと
Day 1 with Amazon Web Services - AWSご利用開始時に最低限おさえておきたい10のことDay 1 with Amazon Web Services - AWSご利用開始時に最低限おさえておきたい10のこと
Day 1 with Amazon Web Services - AWSご利用開始時に最低限おさえておきたい10のこと
 
Zabbix最新情報 ~Zabbix 6.0に向けて~ @OSC2021 Online/Fall
Zabbix最新情報 ~Zabbix 6.0に向けて~ @OSC2021 Online/FallZabbix最新情報 ~Zabbix 6.0に向けて~ @OSC2021 Online/Fall
Zabbix最新情報 ~Zabbix 6.0に向けて~ @OSC2021 Online/Fall
 
AWS Black Belt Online Seminar 2016 AWS上でのファイルサーバ構築
AWS Black Belt Online Seminar 2016 AWS上でのファイルサーバ構築AWS Black Belt Online Seminar 2016 AWS上でのファイルサーバ構築
AWS Black Belt Online Seminar 2016 AWS上でのファイルサーバ構築
 
Amazon Aurora Deep Dive (김기완) - AWS DB Day
Amazon Aurora Deep Dive (김기완) - AWS DB DayAmazon Aurora Deep Dive (김기완) - AWS DB Day
Amazon Aurora Deep Dive (김기완) - AWS DB Day
 
Awsでつくるapache kafkaといろんな悩み
Awsでつくるapache kafkaといろんな悩みAwsでつくるapache kafkaといろんな悩み
Awsでつくるapache kafkaといろんな悩み
 
20190911 AWS Black Belt Online Seminar AWS Batch
20190911 AWS Black Belt Online Seminar AWS Batch20190911 AWS Black Belt Online Seminar AWS Batch
20190911 AWS Black Belt Online Seminar AWS Batch
 
20190226 AWS Black Belt Online Seminar Amazon WorkSpaces
20190226 AWS Black Belt Online Seminar Amazon WorkSpaces20190226 AWS Black Belt Online Seminar Amazon WorkSpaces
20190226 AWS Black Belt Online Seminar Amazon WorkSpaces
 
Ingress on Azure Kubernetes Service
Ingress on Azure Kubernetes ServiceIngress on Azure Kubernetes Service
Ingress on Azure Kubernetes Service
 
AWS Black Belt Online Seminar 2016 AWS CloudFormation
AWS Black Belt Online Seminar 2016 AWS CloudFormationAWS Black Belt Online Seminar 2016 AWS CloudFormation
AWS Black Belt Online Seminar 2016 AWS CloudFormation
 
AWS Black Belt Online Seminar AWS Direct Connect
AWS Black Belt Online Seminar AWS Direct ConnectAWS Black Belt Online Seminar AWS Direct Connect
AWS Black Belt Online Seminar AWS Direct Connect
 
実環境にTerraform導入したら驚いた
実環境にTerraform導入したら驚いた実環境にTerraform導入したら驚いた
実環境にTerraform導入したら驚いた
 
セキュリティ設計の頻出論点
セキュリティ設計の頻出論点セキュリティ設計の頻出論点
セキュリティ設計の頻出論点
 
AWS Black Belt Techシリーズ Amazon VPC
AWS Black Belt Techシリーズ Amazon VPCAWS Black Belt Techシリーズ Amazon VPC
AWS Black Belt Techシリーズ Amazon VPC
 
20200212 AWS Black Belt Online Seminar AWS Systems Manager
20200212 AWS Black Belt Online Seminar AWS Systems Manager20200212 AWS Black Belt Online Seminar AWS Systems Manager
20200212 AWS Black Belt Online Seminar AWS Systems Manager
 

Viewers also liked

Shell入門
Shell入門Shell入門
Shell入門
nasa9084
 
AWSのEC2の複数インスタンスからファイルを共有する方法
AWSのEC2の複数インスタンスからファイルを共有する方法AWSのEC2の複数インスタンスからファイルを共有する方法
AWSのEC2の複数インスタンスからファイルを共有する方法
聡 大久保
 
AWS Black Belt Techシリーズ AWS Storage Gateway
AWS Black Belt Techシリーズ  AWS Storage GatewayAWS Black Belt Techシリーズ  AWS Storage Gateway
AWS Black Belt Techシリーズ AWS Storage Gateway
Amazon Web Services Japan
 
AWS上で使えるストレージ十番勝負
AWS上で使えるストレージ十番勝負AWS上で使えるストレージ十番勝負
AWS上で使えるストレージ十番勝負
Akio Katayama
 
AWS Blackbelt 2015シリーズ Amazon Storage Service (S3)
AWS Blackbelt 2015シリーズ Amazon Storage Service (S3)AWS Blackbelt 2015シリーズ Amazon Storage Service (S3)
AWS Blackbelt 2015シリーズ Amazon Storage Service (S3)
Amazon Web Services Japan
 
Tune Up AWS Lambda
Tune Up AWS LambdaTune Up AWS Lambda
Tune Up AWS Lambda
Keisuke Nishitani
 
AWSでアプリ開発するなら 知っておくべこと
AWSでアプリ開発するなら 知っておくべことAWSでアプリ開発するなら 知っておくべこと
AWSでアプリ開発するなら 知っておくべこと
Keisuke Nishitani
 
Lt ingaoho-jsonb+postgeres fdw
Lt ingaoho-jsonb+postgeres fdwLt ingaoho-jsonb+postgeres fdw
Lt ingaoho-jsonb+postgeres fdw
Toshi Harada
 
その ionice、ほんとに効いてますか?
その ionice、ほんとに効いてますか?その ionice、ほんとに効いてますか?
その ionice、ほんとに効いてますか?
Narimichi Takamura
 
最近のCandyCane - PHP版Redmineでタスク管理を始めよう
最近のCandyCane - PHP版Redmineでタスク管理を始めよう最近のCandyCane - PHP版Redmineでタスク管理を始めよう
最近のCandyCane - PHP版Redmineでタスク管理を始めよう
Yusuke Ando
 
Storage Gateway で大容量ストレージ構築_JAWS-UG沖縄勉強会_Cloud on the beach 2015_2015/04/25
Storage Gateway で大容量ストレージ構築_JAWS-UG沖縄勉強会_Cloud on the beach 2015_2015/04/25Storage Gateway で大容量ストレージ構築_JAWS-UG沖縄勉強会_Cloud on the beach 2015_2015/04/25
Storage Gateway で大容量ストレージ構築_JAWS-UG沖縄勉強会_Cloud on the beach 2015_2015/04/25
Sanehiko Yogi
 
GitBucketで社内OSSしませんか?
GitBucketで社内OSSしませんか?GitBucketで社内OSSしませんか?
GitBucketで社内OSSしませんか?
Kiyotaka Kunihira
 
[Azure Deep Dive] Spark と Azure HDInsight によるビッグ データ分析入門 (2017/03/27)
[Azure Deep Dive] Spark と Azure HDInsight によるビッグ データ分析入門 (2017/03/27)[Azure Deep Dive] Spark と Azure HDInsight によるビッグ データ分析入門 (2017/03/27)
[Azure Deep Dive] Spark と Azure HDInsight によるビッグ データ分析入門 (2017/03/27)
Naoki (Neo) SATO
 
ザビ家の野望 〜 全自動ZABBIX AWS編 〜
ザビ家の野望 〜 全自動ZABBIX AWS編 〜ザビ家の野望 〜 全自動ZABBIX AWS編 〜
ザビ家の野望 〜 全自動ZABBIX AWS編 〜
Katsuhiro Miura
 
SESとLambdaでメールをSlackに通知してみよう
SESとLambdaでメールをSlackに通知してみようSESとLambdaでメールをSlackに通知してみよう
SESとLambdaでメールをSlackに通知してみよう
Ken'ichirou Kimura
 
[AWSマイスターシリーズ]AWS Storage Gateway
[AWSマイスターシリーズ]AWS Storage Gateway[AWSマイスターシリーズ]AWS Storage Gateway
[AWSマイスターシリーズ]AWS Storage GatewayAmazon Web Services Japan
 
#STAC2014 システムテスト自動化ハンズオン
#STAC2014 システムテスト自動化ハンズオン#STAC2014 システムテスト自動化ハンズオン
#STAC2014 システムテスト自動化ハンズオン
kyon mm
 
ビルドプロセスとCI #STAC2014
ビルドプロセスとCI #STAC2014ビルドプロセスとCI #STAC2014
ビルドプロセスとCI #STAC2014
Koji Hasegawa
 
#STAC2014 状態遷移を活用した自動テストのテスト戦略とデプロイメントパイプライン
#STAC2014 状態遷移を活用した自動テストのテスト戦略とデプロイメントパイプライン#STAC2014 状態遷移を活用した自動テストのテスト戦略とデプロイメントパイプライン
#STAC2014 状態遷移を活用した自動テストのテスト戦略とデプロイメントパイプライン
kyon mm
 

Viewers also liked (20)

Shell入門
Shell入門Shell入門
Shell入門
 
AWSのEC2の複数インスタンスからファイルを共有する方法
AWSのEC2の複数インスタンスからファイルを共有する方法AWSのEC2の複数インスタンスからファイルを共有する方法
AWSのEC2の複数インスタンスからファイルを共有する方法
 
AWS Black Belt Techシリーズ AWS Storage Gateway
AWS Black Belt Techシリーズ  AWS Storage GatewayAWS Black Belt Techシリーズ  AWS Storage Gateway
AWS Black Belt Techシリーズ AWS Storage Gateway
 
AWS上で使えるストレージ十番勝負
AWS上で使えるストレージ十番勝負AWS上で使えるストレージ十番勝負
AWS上で使えるストレージ十番勝負
 
AWS Blackbelt 2015シリーズ Amazon Storage Service (S3)
AWS Blackbelt 2015シリーズ Amazon Storage Service (S3)AWS Blackbelt 2015シリーズ Amazon Storage Service (S3)
AWS Blackbelt 2015シリーズ Amazon Storage Service (S3)
 
Tune Up AWS Lambda
Tune Up AWS LambdaTune Up AWS Lambda
Tune Up AWS Lambda
 
AWSでアプリ開発するなら 知っておくべこと
AWSでアプリ開発するなら 知っておくべことAWSでアプリ開発するなら 知っておくべこと
AWSでアプリ開発するなら 知っておくべこと
 
Lt ingaoho-jsonb+postgeres fdw
Lt ingaoho-jsonb+postgeres fdwLt ingaoho-jsonb+postgeres fdw
Lt ingaoho-jsonb+postgeres fdw
 
その ionice、ほんとに効いてますか?
その ionice、ほんとに効いてますか?その ionice、ほんとに効いてますか?
その ionice、ほんとに効いてますか?
 
最近のCandyCane - PHP版Redmineでタスク管理を始めよう
最近のCandyCane - PHP版Redmineでタスク管理を始めよう最近のCandyCane - PHP版Redmineでタスク管理を始めよう
最近のCandyCane - PHP版Redmineでタスク管理を始めよう
 
Storage Gateway で大容量ストレージ構築_JAWS-UG沖縄勉強会_Cloud on the beach 2015_2015/04/25
Storage Gateway で大容量ストレージ構築_JAWS-UG沖縄勉強会_Cloud on the beach 2015_2015/04/25Storage Gateway で大容量ストレージ構築_JAWS-UG沖縄勉強会_Cloud on the beach 2015_2015/04/25
Storage Gateway で大容量ストレージ構築_JAWS-UG沖縄勉強会_Cloud on the beach 2015_2015/04/25
 
GitBucketで社内OSSしませんか?
GitBucketで社内OSSしませんか?GitBucketで社内OSSしませんか?
GitBucketで社内OSSしませんか?
 
[Azure Deep Dive] Spark と Azure HDInsight によるビッグ データ分析入門 (2017/03/27)
[Azure Deep Dive] Spark と Azure HDInsight によるビッグ データ分析入門 (2017/03/27)[Azure Deep Dive] Spark と Azure HDInsight によるビッグ データ分析入門 (2017/03/27)
[Azure Deep Dive] Spark と Azure HDInsight によるビッグ データ分析入門 (2017/03/27)
 
ザビ家の野望 〜 全自動ZABBIX AWS編 〜
ザビ家の野望 〜 全自動ZABBIX AWS編 〜ザビ家の野望 〜 全自動ZABBIX AWS編 〜
ザビ家の野望 〜 全自動ZABBIX AWS編 〜
 
SESとLambdaでメールをSlackに通知してみよう
SESとLambdaでメールをSlackに通知してみようSESとLambdaでメールをSlackに通知してみよう
SESとLambdaでメールをSlackに通知してみよう
 
[AWSマイスターシリーズ]AWS Storage Gateway
[AWSマイスターシリーズ]AWS Storage Gateway[AWSマイスターシリーズ]AWS Storage Gateway
[AWSマイスターシリーズ]AWS Storage Gateway
 
#STAC2014 システムテスト自動化ハンズオン
#STAC2014 システムテスト自動化ハンズオン#STAC2014 システムテスト自動化ハンズオン
#STAC2014 システムテスト自動化ハンズオン
 
ビルドプロセスとCI #STAC2014
ビルドプロセスとCI #STAC2014ビルドプロセスとCI #STAC2014
ビルドプロセスとCI #STAC2014
 
Stac2013 開会挨拶
Stac2013 開会挨拶Stac2013 開会挨拶
Stac2013 開会挨拶
 
#STAC2014 状態遷移を活用した自動テストのテスト戦略とデプロイメントパイプライン
#STAC2014 状態遷移を活用した自動テストのテスト戦略とデプロイメントパイプライン#STAC2014 状態遷移を活用した自動テストのテスト戦略とデプロイメントパイプライン
#STAC2014 状態遷移を活用した自動テストのテスト戦略とデプロイメントパイプライン
 

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

Snapdragon-SCORER
Snapdragon-SCORERSnapdragon-SCORER
Snapdragon-SCORER
Satoshi Toriumi
 
Apache CloudStack 4.0 インストール(ver0.5)
Apache CloudStack 4.0 インストール(ver0.5)Apache CloudStack 4.0 インストール(ver0.5)
Apache CloudStack 4.0 インストール(ver0.5)
Yasuhiro Arai
 
Apache cloudstack4.0インストール
Apache cloudstack4.0インストールApache cloudstack4.0インストール
Apache cloudstack4.0インストールYasuhiro Arai
 
de:code 2019 Cloud トラック 総まとめ!
de:code 2019 Cloud トラック 総まとめ!de:code 2019 Cloud トラック 総まとめ!
de:code 2019 Cloud トラック 総まとめ!
Minoru Naito
 
【18-E-3】クラウド・ネイティブ時代の2016年だから始める Docker 基礎講座
【18-E-3】クラウド・ネイティブ時代の2016年だから始める Docker 基礎講座【18-E-3】クラウド・ネイティブ時代の2016年だから始める Docker 基礎講座
【18-E-3】クラウド・ネイティブ時代の2016年だから始める Docker 基礎講座
Masahito Zembutsu
 
Rubyによるお手軽分散処理
Rubyによるお手軽分散処理Rubyによるお手軽分散処理
Rubyによるお手軽分散処理maebashi
 
Deep Learningハンズオン勉強会「Caffeで画像分類を試してみようの会」
Deep Learningハンズオン勉強会「Caffeで画像分類を試してみようの会」Deep Learningハンズオン勉強会「Caffeで画像分類を試してみようの会」
Deep Learningハンズオン勉強会「Caffeで画像分類を試してみようの会」
Yasuyuki Sugai
 
20140612_Docker上でCloudStackを動かしてみる!!
20140612_Docker上でCloudStackを動かしてみる!!20140612_Docker上でCloudStackを動かしてみる!!
20140612_Docker上でCloudStackを動かしてみる!!
Midori Oge
 
Linux/DB Tuning (DevSumi2010, Japanese)
Linux/DB Tuning (DevSumi2010, Japanese)Linux/DB Tuning (DevSumi2010, Japanese)
Linux/DB Tuning (DevSumi2010, Japanese)Yoshinori Matsunobu
 
201312 scalr[oss] installation_idcf
201312 scalr[oss] installation_idcf201312 scalr[oss] installation_idcf
201312 scalr[oss] installation_idcf
IDC Frontier
 
SCALR OSS版のインストール手順のご紹介 20131204 01
SCALR OSS版のインストール手順のご紹介 20131204 01SCALR OSS版のインストール手順のご紹介 20131204 01
SCALR OSS版のインストール手順のご紹介 20131204 01
Haruhiko KAJIKAWA
 
20130714 July Tech Festa 日本CloudStackユーザー会
20130714 July Tech Festa 日本CloudStackユーザー会20130714 July Tech Festa 日本CloudStackユーザー会
20130714 July Tech Festa 日本CloudStackユーザー会samemoon
 
Djangoとweb2pyをapacheに組込む
Djangoとweb2pyをapacheに組込むDjangoとweb2pyをapacheに組込む
Djangoとweb2pyをapacheに組込む2bo 2bo
 
Osc10do linux nextstep
Osc10do linux nextstepOsc10do linux nextstep
Osc10do linux nextstepsmokey monkey
 
Cell/B.E. プログラミング事始め
Cell/B.E. プログラミング事始めCell/B.E. プログラミング事始め
Cell/B.E. プログラミング事始め
You&I
 
OpenStack を NetApp Unified Driver と NFS Copy Offload を使って拡張する Vol.002
OpenStack を NetApp Unified Driver と NFS Copy Offload を使って拡張する Vol.002OpenStack を NetApp Unified Driver と NFS Copy Offload を使って拡張する Vol.002
OpenStack を NetApp Unified Driver と NFS Copy Offload を使って拡張する Vol.002
Takeshi Kuramochi
 
夏サミ2013 Hadoopを使わない独自の分散処理環境の構築とその運用
夏サミ2013 Hadoopを使わない独自の分散処理環境の構築とその運用夏サミ2013 Hadoopを使わない独自の分散処理環境の構築とその運用
夏サミ2013 Hadoopを使わない独自の分散処理環境の構築とその運用
Developers Summit
 
Learning spaerk chapter03
Learning spaerk chapter03Learning spaerk chapter03
Learning spaerk chapter03
Akimitsu Takagi
 
osoljp 2011.08
osoljp 2011.08osoljp 2011.08
osoljp 2011.08
@ otsuka752
 
今だからこそ知りたい Docker Compose/Swarm 入門
今だからこそ知りたい Docker Compose/Swarm 入門今だからこそ知りたい Docker Compose/Swarm 入門
今だからこそ知りたい Docker Compose/Swarm 入門
Masahito Zembutsu
 

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

Snapdragon-SCORER
Snapdragon-SCORERSnapdragon-SCORER
Snapdragon-SCORER
 
Apache CloudStack 4.0 インストール(ver0.5)
Apache CloudStack 4.0 インストール(ver0.5)Apache CloudStack 4.0 インストール(ver0.5)
Apache CloudStack 4.0 インストール(ver0.5)
 
Apache cloudstack4.0インストール
Apache cloudstack4.0インストールApache cloudstack4.0インストール
Apache cloudstack4.0インストール
 
de:code 2019 Cloud トラック 総まとめ!
de:code 2019 Cloud トラック 総まとめ!de:code 2019 Cloud トラック 総まとめ!
de:code 2019 Cloud トラック 総まとめ!
 
【18-E-3】クラウド・ネイティブ時代の2016年だから始める Docker 基礎講座
【18-E-3】クラウド・ネイティブ時代の2016年だから始める Docker 基礎講座【18-E-3】クラウド・ネイティブ時代の2016年だから始める Docker 基礎講座
【18-E-3】クラウド・ネイティブ時代の2016年だから始める Docker 基礎講座
 
Rubyによるお手軽分散処理
Rubyによるお手軽分散処理Rubyによるお手軽分散処理
Rubyによるお手軽分散処理
 
Deep Learningハンズオン勉強会「Caffeで画像分類を試してみようの会」
Deep Learningハンズオン勉強会「Caffeで画像分類を試してみようの会」Deep Learningハンズオン勉強会「Caffeで画像分類を試してみようの会」
Deep Learningハンズオン勉強会「Caffeで画像分類を試してみようの会」
 
20140612_Docker上でCloudStackを動かしてみる!!
20140612_Docker上でCloudStackを動かしてみる!!20140612_Docker上でCloudStackを動かしてみる!!
20140612_Docker上でCloudStackを動かしてみる!!
 
Linux/DB Tuning (DevSumi2010, Japanese)
Linux/DB Tuning (DevSumi2010, Japanese)Linux/DB Tuning (DevSumi2010, Japanese)
Linux/DB Tuning (DevSumi2010, Japanese)
 
201312 scalr[oss] installation_idcf
201312 scalr[oss] installation_idcf201312 scalr[oss] installation_idcf
201312 scalr[oss] installation_idcf
 
SCALR OSS版のインストール手順のご紹介 20131204 01
SCALR OSS版のインストール手順のご紹介 20131204 01SCALR OSS版のインストール手順のご紹介 20131204 01
SCALR OSS版のインストール手順のご紹介 20131204 01
 
20130714 July Tech Festa 日本CloudStackユーザー会
20130714 July Tech Festa 日本CloudStackユーザー会20130714 July Tech Festa 日本CloudStackユーザー会
20130714 July Tech Festa 日本CloudStackユーザー会
 
Djangoとweb2pyをapacheに組込む
Djangoとweb2pyをapacheに組込むDjangoとweb2pyをapacheに組込む
Djangoとweb2pyをapacheに組込む
 
Osc10do linux nextstep
Osc10do linux nextstepOsc10do linux nextstep
Osc10do linux nextstep
 
Cell/B.E. プログラミング事始め
Cell/B.E. プログラミング事始めCell/B.E. プログラミング事始め
Cell/B.E. プログラミング事始め
 
OpenStack を NetApp Unified Driver と NFS Copy Offload を使って拡張する Vol.002
OpenStack を NetApp Unified Driver と NFS Copy Offload を使って拡張する Vol.002OpenStack を NetApp Unified Driver と NFS Copy Offload を使って拡張する Vol.002
OpenStack を NetApp Unified Driver と NFS Copy Offload を使って拡張する Vol.002
 
夏サミ2013 Hadoopを使わない独自の分散処理環境の構築とその運用
夏サミ2013 Hadoopを使わない独自の分散処理環境の構築とその運用夏サミ2013 Hadoopを使わない独自の分散処理環境の構築とその運用
夏サミ2013 Hadoopを使わない独自の分散処理環境の構築とその運用
 
Learning spaerk chapter03
Learning spaerk chapter03Learning spaerk chapter03
Learning spaerk chapter03
 
osoljp 2011.08
osoljp 2011.08osoljp 2011.08
osoljp 2011.08
 
今だからこそ知りたい Docker Compose/Swarm 入門
今だからこそ知りたい Docker Compose/Swarm 入門今だからこそ知りたい Docker Compose/Swarm 入門
今だからこそ知りたい Docker Compose/Swarm 入門
 

More from 真治 米田

何はともあれ、まず最初にやることといえばこれ
何はともあれ、まず最初にやることといえばこれ何はともあれ、まず最初にやることといえばこれ
何はともあれ、まず最初にやることといえばこれ
真治 米田
 
JAWS-UG CLI 専門支部のハンズオンテキストを Jupyter Notebook 上で実行できるようにする
JAWS-UG CLI 専門支部のハンズオンテキストをJupyter Notebook 上で実行できるようにするJAWS-UG CLI 専門支部のハンズオンテキストをJupyter Notebook 上で実行できるようにする
JAWS-UG CLI 専門支部のハンズオンテキストを Jupyter Notebook 上で実行できるようにする
真治 米田
 
Oss との関わり
Oss との関わりOss との関わり
Oss との関わり
真治 米田
 
GraphMLとNeo4jでやってみたいこと
GraphMLとNeo4jでやってみたいことGraphMLとNeo4jでやってみたいこと
GraphMLとNeo4jでやってみたいこと
真治 米田
 
localstackによるAWS Lambdaの開発環境を、miniconda上でつくったら簡単便利だった話
localstackによるAWS Lambdaの開発環境を、miniconda上でつくったら簡単便利だった話localstackによるAWS Lambdaの開発環境を、miniconda上でつくったら簡単便利だった話
localstackによるAWS Lambdaの開発環境を、miniconda上でつくったら簡単便利だった話
真治 米田
 
CentOS6 でも Zabbix 3.0 を動かしたい
CentOS6 でも Zabbix 3.0 を動かしたいCentOS6 でも Zabbix 3.0 を動かしたい
CentOS6 でも Zabbix 3.0 を動かしたい
真治 米田
 
SlackのSlash commandの処理をAWS Lambdaで実装してみました
SlackのSlash commandの処理をAWS Lambdaで実装してみましたSlackのSlash commandの処理をAWS Lambdaで実装してみました
SlackのSlash commandの処理をAWS Lambdaで実装してみました
真治 米田
 
OSSを用いた監視/運用ツールの運用課題について
OSSを用いた監視/運用ツールの運用課題についてOSSを用いた監視/運用ツールの運用課題について
OSSを用いた監視/運用ツールの運用課題について真治 米田
 
運用の現場での監視運用ツールの活用
運用の現場での監視運用ツールの活用運用の現場での監視運用ツールの活用
運用の現場での監視運用ツールの活用
真治 米田
 
第2回 OSS運用管理勉強会 運用あるある(Zabbix)
第2回 OSS運用管理勉強会 運用あるある(Zabbix)第2回 OSS運用管理勉強会 運用あるある(Zabbix)
第2回 OSS運用管理勉強会 運用あるある(Zabbix)真治 米田
 

More from 真治 米田 (10)

何はともあれ、まず最初にやることといえばこれ
何はともあれ、まず最初にやることといえばこれ何はともあれ、まず最初にやることといえばこれ
何はともあれ、まず最初にやることといえばこれ
 
JAWS-UG CLI 専門支部のハンズオンテキストを Jupyter Notebook 上で実行できるようにする
JAWS-UG CLI 専門支部のハンズオンテキストをJupyter Notebook 上で実行できるようにするJAWS-UG CLI 専門支部のハンズオンテキストをJupyter Notebook 上で実行できるようにする
JAWS-UG CLI 専門支部のハンズオンテキストを Jupyter Notebook 上で実行できるようにする
 
Oss との関わり
Oss との関わりOss との関わり
Oss との関わり
 
GraphMLとNeo4jでやってみたいこと
GraphMLとNeo4jでやってみたいことGraphMLとNeo4jでやってみたいこと
GraphMLとNeo4jでやってみたいこと
 
localstackによるAWS Lambdaの開発環境を、miniconda上でつくったら簡単便利だった話
localstackによるAWS Lambdaの開発環境を、miniconda上でつくったら簡単便利だった話localstackによるAWS Lambdaの開発環境を、miniconda上でつくったら簡単便利だった話
localstackによるAWS Lambdaの開発環境を、miniconda上でつくったら簡単便利だった話
 
CentOS6 でも Zabbix 3.0 を動かしたい
CentOS6 でも Zabbix 3.0 を動かしたいCentOS6 でも Zabbix 3.0 を動かしたい
CentOS6 でも Zabbix 3.0 を動かしたい
 
SlackのSlash commandの処理をAWS Lambdaで実装してみました
SlackのSlash commandの処理をAWS Lambdaで実装してみましたSlackのSlash commandの処理をAWS Lambdaで実装してみました
SlackのSlash commandの処理をAWS Lambdaで実装してみました
 
OSSを用いた監視/運用ツールの運用課題について
OSSを用いた監視/運用ツールの運用課題についてOSSを用いた監視/運用ツールの運用課題について
OSSを用いた監視/運用ツールの運用課題について
 
運用の現場での監視運用ツールの活用
運用の現場での監視運用ツールの活用運用の現場での監視運用ツールの活用
運用の現場での監視運用ツールの活用
 
第2回 OSS運用管理勉強会 運用あるある(Zabbix)
第2回 OSS運用管理勉強会 運用あるある(Zabbix)第2回 OSS運用管理勉強会 運用あるある(Zabbix)
第2回 OSS運用管理勉強会 運用あるある(Zabbix)
 

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

  • 2. 自己紹介 • 米田 真治 (こめだ しんじ) – 株式会社サイタスマネジメント CTO – 運用エンジニア • 経歴 – 学生時代にUNIXに出会う – Internetにつながる環境がきた – いろんなプログラムをビルドしているうちに、 開発・構築の楽しさに目覚める – 学科のシステム管理を経験 – システム運用のおもしろさを覚える – 就職してISPのサーバ構築・運用に携わる – 2000年6月 サイタスマネジメント創業 2016/5/14JAWS-UGアーキテクチャ専門支部ハイブリッドクラウド 分科会CDP議論会#5 2
  • 3. バケットをファイルシステムとして マウントするタイプ • バケット上のオブジェクト ⇔ ファイスシステム上のファイル 各オブジェクトがそれぞれ一つのファイルとして見えます。 • 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/14 JAWS-UGアーキテクチャ専門支部ハイブリッドクラウド 分科会CDP議論会#5 3
  • 4. ファイルシステムのデータを バケット上に保存するタイプ • s3ql – ファイルシステム上のファイル → バケット上に複数のチャンクとして保存します。 – ファイルシステムのサイズは動的に変化します。 • s3backer – 透過的に巨大なファイルをエミュレートします。 – ファイルサイズは初期化するときに決定しますがバケット上のオブジェクトはデータブ ロックを使用したときに割り当てられます。 – データブロック → バケット上のオブジェクト – ファイルをブロックデバイスとしてマップして、任意のファイルシステムを構築するこ とができます。 どちらも – ローカルキャッシュを利用すれば比較的高速にファイルアクセスが可能です。 – 透過的にファイル圧縮と暗号化をサポートしています。 – 複数箇所から同時にマウントすることはできません。 2016/5/14 JAWS-UGアーキテクチャ専門支部ハイブリッドクラウド 分科会CDP議論会#5 4
  • 5. ストレージゲートウェイとの比較 • s3ql/s3backer – バケット上に構築したボリュームをローカルファイルシステムとして 直接マウントします。 • ストレージゲートウェイ – ボリューム型はiSCSIターゲットとして動作します。 – ストレージゲートウェイ用に仮想アプライアンスが必要です。 – ネイティブサービスです。 2016/5/14 JAWS-UGアーキテクチャ専門支部ハイブリッドクラウド 分科会CDP議論会#5 5
  • 6. 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/14 JAWS-UGアーキテクチャ専門支部ハイブリッドクラウド 分科会CDP議論会#5 6
  • 7. S3QLの利用例 • オンプレミスからクラウドストレージをデータのバックアップ領域などに利用。 • “リフト・アップ”したのとき、EC2インスタンス上のデータのバックアップ 領域などに利用。 – 直接マウントして書き出しができますが、十分なキャッシュ領域を確保しな いと性能が出ないため、相応の作業領域が必要です。 – バケット上のオブジェクトとして参照する必要がなければ有効でしょう。 – ローカルキャッシュは書き込みでも使用されるため、s3fsよりは速いです。 (write-back) – たとえば、 – MySQLのInnoDB データをXtraBackupでインクリメンタルバックアップする。 → それ RDS Restore to Point in Time で、できるよね。 “リフト・アンド・シフト”で、リファクタするときには、 そのように変更するのが良いでしょう。 2016/5/14 JAWS-UGアーキテクチャ専門支部ハイブリッドクラウド 分科会CDP議論会#5 7
  • 8. 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/14 JAWS-UGアーキテクチャ専門支部ハイブリッドクラウド 分科会CDP議論会#5 8
  • 9. mkfs.s3ql #  /usr/local/bin/mkfs.s3ql  s3://s3ql-­‐ bucket Enter  backend  login: Enter  backend  passphrase: _do_request():  redirected  to  bucket.s3-­‐ region.amazonaws.com Before  using  S3QL,  make  sure  to  read  the   user's  guide,  especially the  'Important  Rules  to  Avoid  Loosing   Data'  section. _do_request():  redirected  to bucket.s3-­‐ region.amazonaws.com Enter  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  allows decryption  of  the  S3QL  file  system  in  case   the  storage  objects  holding this  information  get  corrupted: -­‐-­‐-­‐BEGIN  MASTER  KEY-­‐-­‐-­‐ XXXXXXXXX -­‐-­‐-­‐END  MASTER  KEY-­‐-­‐-­‐ 2016/5/14 JAWS-UGアーキテクチャ専門支部ハイブリッドクラウド 分科会CDP議論会#5 9
  • 10. クレデンシャル $HOME/.s3ql/authinfo2 [bucket] storage-­‐url:  s3://s3ql-­‐bucket backend-­‐login: Access  Key  ID backend-­‐password: Secret  Access  Key fs-­‐passphrase: passphrase 2016/5/14 JAWS-UGアーキテクチャ専門支部ハイブリッドクラウド 分科会CDP議論会#5 10
  • 11. 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/14 JAWS-UGアーキテクチャ専門支部ハイブリッドクラウド 分科会CDP議論会#5 11
  • 12. umount umount するとキャッシュがフラッシュされデータアップロードの分、時間がかかります。 #  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%  cpu 1: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%  cpu 2.308  total 2016/5/14 JAWS-UGアーキテクチャ専門支部ハイブリッドクラウド 分科会CDP議論会#5 12
  • 13. 速度比較 ローカル %  time  dd if=/dev/urandom of=test  bs=64k   count=1000 1000+0  records  in 1000+0  records  out 65536000  bytes  (66  MB)  copied,  6.11013  s,   10.7  MB/s dd 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=10000 10000+0  records  in 10000+0  records  out 655360000  bytes  (655  MB)  copied,  62.6933  s,   10.5  MB/s dd if=/dev/urandom of=test  bs=64k   count=10000 0.01s  user  60.09s  system  95%   cpu 1:02.70  total S3QL #  cd  /s3/s3ql-­‐fs #  time  dd if=/dev/urandom of=test  bs=64k   count=1000 1000+0  records  in 1000+0  records  out 65536000  bytes  (66  MB)  copied,  7.31893  s,   9.0  MB/s dd 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=10000 10000+0  records  in 10000+0  records  out 655360000  bytes  (655  MB)  copied,  121.856  s,   5.4  MB/s dd if=/dev/urandom of=test  bs=64k   count=10000    0.01s  user  61.25s  system  42%   cpu 2:25.42  total 2016/5/14 JAWS-UGアーキテクチャ専門支部ハイブリッドクラウド 分科会CDP議論会#5 13
  • 14. ファイルツリーのコピー #  /usr/local/bin/mount.s3ql  -­‐-­‐cachedir /var/cache/s3ql  s3://s3ql-­‐ bucket  /s3/s3ql-­‐fs #  time  mkdir /s3/s3ql-­‐fs/test-­‐dir mkdir /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/14 JAWS-UGアーキテクチャ専門支部ハイブリッドクラウド 分科会CDP議論会#5 14
  • 15. ツリーの削除やコピー 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%  cpu 1.701  total s3qlrm の場合 #  time  s3qlrm  /s3/s3ql-­‐fs/test-­‐dir s3qlrm  /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%  cpu 1.698  total ファルシステム内でのコピー s3qlcp source target を使えば効率的に処理が行われます。 2016/5/14 JAWS-UGアーキテクチャ専門支部ハイブリッドクラウド 分科会CDP議論会#5 15
  • 16. 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%  cpu 1.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%  cpu 58.982  total 2016/5/14 JAWS-UGアーキテクチャ専門支部ハイブリッドクラウド 分科会CDP議論会#5 16
  • 17. s3fs/riofs/goofys 比較 EC2インスタンスから実施 テストデータサイズ #  du  -­‐sk /boot  /lib/modules 25044 /boot 30724 /lib/modules #  find  /boot  /lib/modules  -­‐type  f  -­‐print  |  wc -­‐l 995 事前に一度 cp -­‐r  /boot  /lib/modules  /s3/test-­‐bucket/test-­‐dir/ を実行してファイルをキャッシュに載せています。 2016/5/14 JAWS-UGアーキテクチャ専門支部ハイブリッドクラウド 分科会CDP議論会#5 17
  • 18. 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-­‐dir rm -­‐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/14 JAWS-UGアーキテクチャ専門支部ハイブリッドクラウド分科会 CDP議論会#5 18
  • 19. s3fs  cpioでコピー #  time  find  boot  lib/modules  -­‐print  |  cpio -­‐pdm /s3/test-­‐bucket/test-­‐dir 106782  blocks find  boot  lib/modules  -­‐print    0.00s  user  0.00s  system  83%  cpu 0.003  total cpio -­‐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-­‐dir rm -­‐r  /s3/test-­‐bucket/test-­‐dir 0.00s  user  0.04s  system  0%  cpu 52.469   total 2016/5/14 JAWS-UGアーキテクチャ専門支部ハイブリッドクラウド分科会 CDP議論会#5 19
  • 20. 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  directory cp:  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-­‐dir rm:  cannot   remove   ‘/s3/test-­‐bucket/test-­‐dir/boot/grub/i386-­‐ pc/cmdline_cat_test.mod’:   No  such  file   or  directory rm:  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/14 JAWS-UGアーキテクチャ専門支部ハイブリッドクラウド 分科会CDP議論会#5 20
  • 21. riofs cpioでコピー #  time  find  boot  lib/modules  -­‐print  |  cpio -­‐pdm /s3/test-­‐ bucket/test-­‐dir 106782  blocks find  boot  lib/modules  -­‐print    0.00s  user  0.00s  system  6%  cpu 0.046   total cpio -­‐pdm /s3/test-­‐bucket/test-­‐dir 0.08s  user  0.69s  system  2%  cpu 33.614  total #  time  rm -­‐r  /s3/test-­‐bucket/test-­‐dir rm:  cannot  remove  ‘/s3/test-­‐bucket/test-­‐dir/boot/grub/i386-­‐ pc/cmdline_cat_test.mod’:  No  such  file  or  directory rm:  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%  cpu 46.314  total 2016/5/14 JAWS-UGアーキテクチャ専門支部ハイブリッドクラウド 分科会CDP議論会#5 21
  • 22. 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-­‐dir cp:  cannot  create  symbolic  link  ‘/s3/test-­‐bucket/test-­‐ dir/modules/3.13.0-­‐48-­‐generic/build’:  Function  not  implemented cp:  error  writing  ‘/s3/test-­‐bucket/test-­‐dir/modules/3.13.0-­‐48-­‐ generic/kernel/arch/x86/kvm/kvm.ko’:  Invalid  argument cp:  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-­‐dir rm -­‐r  /s3/test-­‐bucket/test-­‐dir 0.00s  user  0.05s  system  0%  cpu 39.570  total #  fusermount -­‐u  /s3/test-­‐bucket   2016/5/14 JAWS-UGアーキテクチャ専門支部ハイブリッドクラウド 分科会CDP議論会#5 22
  • 23. エラーメッセージ #  grep goofys /var/log/syslog   |  grep fuse.ERROR |  head  -­‐5 May  10  18:45:50   ops-­‐hub   /usr/local/bin/goofys[2479]:   fuse.ERROR WriteFile:   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.ERROR WriteFile:   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.ERROR WriteFile:   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.ERROR WriteFile:   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.ERROR WriteFile:   only   sequential   writes   supported   561  test-­‐ dir/modules/3.13.0-­‐48-­‐generic/kernel/drivers/md/bcache/bcache.ko [176128   180224] 2016/5/14 JAWS-UGアーキテクチャ専門支部ハイブリッドクラウド 分科会CDP議論会#5 23
  • 24. goofys cpioでコピー #  time  find  boot  lib/modules  -­‐print  |  cpio -­‐pdm /s3/test-­‐ bucket/test-­‐dir cpio:  /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  implemented 106782  blocks find  boot  lib/modules  -­‐print    0.00s  user  0.00s  system  14%  cpu 0.019  total cpio -­‐pdm /s3/test-­‐bucket/test-­‐dir 0.07s  user  0.55s  system  0%  cpu 2:03.93  total #  time  rm -­‐r  /s3/test-­‐bucket/test-­‐dir rm -­‐r  /s3/test-­‐bucket/test-­‐dir 0.02s  user  0.03s  system  0%  cpu 46.708  total #  fusermount -­‐u  /s3/test-­‐bucket   2016/5/14 JAWS-UGアーキテクチャ専門支部ハイブリッドクラウド 分科会CDP議論会#5 24
  • 25. AWS  CLI コピー #  time  aws s3  cp /boot  s3://test-­‐bucket/test-­‐dir -­‐-­‐recursive aws 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 -­‐-­‐ recursive aws 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 -­‐-­‐recursive aws s3  rm s3://test-­‐bucket/test-­‐dir -­‐-­‐recursive    36.13s  user  1.43s   system  58%  cpu 1:04.68  total 2016/5/14 JAWS-UGアーキテクチャ専門支部ハイブリッドクラウド 分科会CDP議論会#5 25
  • 26. 実行時間 cp -­r   rm -­r find+cpio rm -­r s3fs 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/14 JAWS-UGアーキテクチャ専門支部ハイブリッドクラウド 分科会CDP議論会#5 26 普通のファイルシステムのつもりで使ってはいけません。 ファイルアクセスのパターンによってはエラーが起きます。 cpコマンドは効率を上げるため、mmapしているはず。 aws cli の使い勝手がよくなっており、意外と悪くない結果 × は実行時にエラーが発生したものそれぞれ1回だけの実行時間であり、 定量的な測定値ではありません umount時 58.98 秒