banner
李大仁博客

李大仁博客

天地虽大,但有一念向善,心存良知,虽凡夫俗子,皆可为圣贤。

[Ubuntu] 使用 open-iscsi 發起 iscsi 連接 Target

名下有多台 VPS 伺服器放在不同的雲供應商那裡,定期備份伺服器資料成了很棘手的問題。習慣上會使用掛載 nfs 方式,使用 s3fs-fuse 先將 S3 的 Bucket 掛載到本機分區,然後向該分區寫入需要備份的檔案,

但是近期 S3 的接入穩定性確實很差,即使是 AWS 的老家美國,使用 s3fs-fuse 掛載的分區,也不能有比較穩定的讀寫。碰到大量檔案和持續讀寫的情況,效果非常不理想

近期發現使用 AWS Storage Gateway 可以直接讓虛擬機連接到 iscsi 的 target,然後操作相應的 LUN 和卷。iscsi 協議因為使用了比 HTTP/S 更低的 TCP/IP 協議,相對 s3fs 方式可以更穩定。

另外 AWS Storage Gateway 的傳入流量是免費的,只收取存儲到 S3,EBS 的存儲費用。

伺服器版本:Ubuntu18.04 LTS 設備目標:/dev/sdc

一、安裝和配置 iscsi 發起端程式 1. 安裝 open-scsi 和 utils

#安裝 open-scsi 和 utils
sudo apt-get install open-iscsi open-iscsi-utils

2. 發現 iscsi target

#發現 iscsi target
sudo iscsiadm -m discovery -t sendtargets -p XXX.XXX.XXX.XXX:3260

3. 登入 target

#登入 target
sudo iscsiadm -m node --targetname iqn.1997-05.com.amazon.XXXXXX -p XXX.XXX.XXX.XXX:3260 --login

二、掛載硬碟

1. 發現並分區格式化磁碟

fdisk -l

2. 分區格式化 LUN

fdisk /dev/sdc
mkfs.ext4 /dev/sdc1

3. 掛載到指定

sudo mkdir /mnt/backup
sudo mount /dev/sdc1 /mnt/backup

4. 卸載硬碟

sudo unmount /mnt/backup

三、開機自動連接到 LUN,掛載硬碟

1. 開機自動登入 target 修改 /etc/iscsi/iscsid.conf,開啟自動登入到 Gateway

vi /etc/iscsi/iscsid.conf
#自動開啟
node.startup = automatic

2. 修改 /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

2. 如果發生連接超時的情況,通常跟網路品質有關,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

參考 https://docs.aws.amazon.com/storagegateway/latest/userguide/initiator-connection-common.html#CustomizeLinuxiSCSISettings

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。