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

加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。