Last Updated on 2021年7月4日 by かんりにん
[pukiwiki]
以前バックアップテストに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の初期設定>https://www.harumaki.net/2013/03/25/aws-s3fs/]]と同じ。
*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がリリースされていたので、バージョンアップ済み。
[/pukiwiki]