[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
Recent Comments