異なるクラウドプロバイダーに配置された複数の VPS サーバーを所有しており、定期的にサーバーデータをバックアップすることは非常に困難な問題です。通常、NFS マウント方法を使用し、s3fs-fuse を使用して S3 のバケットをローカルパーティションにマウントし、バックアップするファイルをそのパーティションに書き込むことがあります。
しかし、最近 S3 へのアクセスの安定性が非常に低いことが確認されました。AWS の本拠地であるアメリカでも、s3fs-fuse でマウントされたパーティションでは、比較的安定した読み書きができません。大量のファイルや継続的な読み書きの場合、効果は非常に理想的ではありません。
最近、AWS Storage Gateway を使用して仮想マシンを直接 iscsi のターゲットに接続し、対応する LUN とボリュームを操作できることがわかりました。iscsi プロトコルは HTTP/S よりも低い TCP/IP プロトコルを使用しているため、s3fs の方法よりも安定しています。
また、AWS Storage Gateway のインバウンドトラフィックは無料で、S3 や EBS へのストレージ費用のみが請求されます。
サーバーバージョン:Ubuntu18.04 LTS デバイスターゲット:/dev/sdc
- iscsi イニシエータープログラムのインストールと設定 1. open-iscsi および open-iscsi-utils のインストール
open-iscsi および open-iscsi-utils のインストール#
sudo apt-get install open-iscsi open-iscsi-utils
- iscsi ターゲットの検出
iscsi ターゲットの検出#
sudo iscsiadm -m discovery -t sendtargets -p XXX.XXX.XXX.XXX:3260
- ターゲットへのログイン
ターゲットへのログイン#
sudo iscsiadm -m node --targetname iqn.1997-05.com.amazon.XXXXXX -p XXX.XXX.XXX.XXX:3260 --login
-
ディスクのマウント
-
ディスクの検出およびパーティションのフォーマット
fdisk -l
- パーティションのフォーマット
fdisk /dev/sdc
mkfs.ext4 /dev/sdc1
- 指定した場所にマウント
sudo mkdir /mnt/backup
sudo mount /dev/sdc1 /mnt/backup
- ディスクのアンマウント
sudo unmount /mnt/backup
-
ブート時に LUN に自動接続し、ディスクをマウントする
-
ターゲットへの自動ログイン /etc/iscsi/iscsid.conf を編集し、Gateway への自動ログインを有効にする
vi /etc/iscsi/iscsid.conf
自動起動#
node.startup = automatic
- /etc/fstab を編集し、ブート時に自動マウントする
ファイルシステムの UUID を取得#
tune2fs -l
/etc/fstab を編集し、ブート時に自動マウントする
/etc/fstab を編集#
sudo vi /etc/fstab
/etc/fstab に追加#
UUID=6dba31ff-xxxx-4430-bbd2-c1a932a53308 /backup ext4 _netdev 0 0
注意すべきポイント: 1. AWS Storage Gateway との接続中に不明な中断が発生した場合、デバイスを強制的にリフレッシュすることができます。
udevadm test /sys/block/sdc
- 接続タイムアウトが発生した場合、通常はネットワークの品質に関連しています。AWS は iscsid.conf を変更することを推奨しています。
vi /etc/iscsi/iscsid.conf
# 接続タイムアウトパラメータを変更
node.session.timeo.replacement_timeout = 600
node.conn[0].timeo.noop_out_interval = 60
node.conn[0].timeo.noop_out_timeout = 600