Last Updated on 2021年7月4日 by かんりにん
以前バックアップテストに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/InstallationNotesyum 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がリリースされていたので、バージョンアップ済み。