harumaki.net

インフラ屋の覚書や、ラーメン食べある記とか。

[AWS]s3fsの最新版を試してみた(s3fs-1.70)

   


以前バックアップテストにCentOS6.3のAMIを使用したが、s3fsをインストールする際、RPM版fuseのバージョンが2.8.3と古く、これに合わせてs3fsのバージョンも1.19と古いバージョンをインストールして使ってみた。
しかし、S3のバケットをマウントすると通信エラーがよく発生する。
このため、トラブルシュートの一環と比較対象として、s3fsの最新バージョンをインストールして試してみることに。
今回はAMIには最新のパッケージの提供が期待できるAmazon Linux AMIを使用。
S3は東京、シンガポールにそれぞれバケットを作成してマウント、コピーを試してみる。

1)パッケージのインストール

公式ドキュメントには、以下のパッケージのインストールが必要との
情報があるので、これを参考にしつつ、現在足りていないものを追加。
※EC2 AMIもyumでのパッケージ管理だったので、ひとまずFedora / CentOSのドキュメントを参考に。

  • [公式ドキュメントからの抜粋]
    http://code.google.com/p/s3fs/wiki/InstallationNotes

       yum install gcc
       yum install libstdc++-devel
       yum install gcc-c++
       yum install fuse
       yum install fuse-devel
       yum install curl-devel
       yum install libxml2-devel
       yum install openssl-devel
       yum install mailcap 
  • インストールログ
    # yum install fuse fuse-devel fuse-libs
     
    --- 中略 --- 
     
    Installed:
      fuse.x86_64 0:2.9.2-1.13.amzn1
      fuse-devel.x86_64 0:2.9.2-1.13.amzn1
      fuse-libs.x86_64 0:2.9.2-1.13.amzn1
     
     
    # yum install gcc-c++
    # yum install curl-devel libxml2-devel openssl-devel

まとめて一行で片づけてもOK。

# yum -y install gcc libstdc++-devel gcc-c++ fuse fuse-devel curl-devel libxml2-devel openssl-devel mailcap

2)s3fsのダウンロードとインストール

$ wget https://s3fs.googlecode.com/files/s3fs-1.70.tar.gz
$ file s3fs-1.70.tar.gz
s3fs-1.70.tar.gz: gzip compressed data, from Unix, last modified: Sun Jun  2 00:57:25 2013, max compression
$ gzip -d s3fs-1.70.tar.gz
$ tar -xvf s3fs-1.70.tar
$ cd s3fs-1.70
$ ./configure
$ make
$ sudo make install
※Amazon Linux AMIはec2-userでsudoができるので、上のような感じに。
   rootにsu -した場合はそのままmake installで。

以降は、s3fs-1.19の初期設定と同じ。

3)s3fsでのエラーの調査と転送ファイルサイズの検証

S3に作成したバケットをマウントしてテスト。

バケット

バックアップファイルの転送先として東京、シンガポールにそれぞれバケットを作成。

  • 東京
    s3-backup-db1-tokyo
    →マウント先:/mnt/s3-backup-db1-tokyo/
  • シンガポール
    s3-backup-db2-singapore
    →マウント先:/mnt/s3-backup-db2-singapore/

s3fs-1.19の転送エラー時のメッセージ

ファイルの転送中(ローカル上でcp -aを使っている状態)にエラーが出てしまい
その後、以下のようなエラーメッセージが出る。

  • 東京リージョンの場合
    # ll /mnt/s3-backup-db1-tokyo/
    ls: reading directory /mnt/s3-backup-db1-tokyo/: ソフトウェアが接続を中断しました
    合計 0
    # ll /mnt/s3-backup-db1-tokyo/
    ls: cannot access /mnt/s3-backup-db1-tokyo/: 通信端点が接続されていません
  • シンガポールリージョンの場合
    # ll /mnt/s3-backup-db2-singapore/
    ls: reading directory /mnt/s3-backup-db2-singapore/: 入力/出力エラーです
    合計 0

s3fsの最新版1.70を試す

  • DBダンプファイルの保管ディレクトリ
    /home/ec2-user/db-s3test/
  • 転送対象のDBダンプファイル
    backup_db.sql.gz

3-1)EC2東京→S3東京

$ cd /home/ec2-user/db-s3test/
$ time cp backup_db.sql.gz /mnt/s3-backup-db1-tokyo/
 
real    11m47.757s
user    0m0.436s
sys     0m26.350s

→所要時間11:48(小数以下切り捨て)

1-2)EC2東京→S3シンガポール

$ time cp backup_db.sql.gz /mnt/s3-backup-db2-singapore/
 
real    81m33.119s
user    0m0.360s
sys     0m26.342s

→所要時間81:33(小数以下切り捨て)

→最新版でファイルの転送、マウントをガリガリ試したが、ファイルサイズの上限の課題も含めて
"通信端点が接続されていません"エラーが出ていないので、今のところ問題なし。

[追記]このあと2日後(06/15)にs3fs-1.71がリリースされていたので、バージョンアップ済み。

 

Amazon Web Services クラウドデザインパターン設計ガイド 改訂版
玉川憲 片山暁雄 鈴木宏康 野上 忍 瀬戸島 敏宏 坂西 隆之
日経BP社
売り上げランキング: 75,785
Amazon Web Services クラウドデザインパターン実装ガイド 改訂版
大澤 文孝
日経BP社
売り上げランキング: 126,429

 

 - AWS, infra, 運用 ,