NAS 开机启动自动挂载.
局域网内有一台 NAS, 上面分了多块 Target, 多台机器都会使用这台 NAS, 但是发现 NAS 自动挂载有问题.
明明只在某台机器挂载了某一个 Target, 但所有机器重启之后, 这台机器上可能会挂载上别的 Target. (只是链接到这台机器, fdisk 可以看到, 没有实际挂载到某个目录), 所有导致别的机器不能正常挂载.
所以只能保持 iscsi 服务保持开机启动, 把自动发现关闭, 写脚本实现自动挂载.
我看了网上好多个版本, 大体都一样, 但都是在 NAS 已经开机的情况下. 没有考虑是 NAS 先开机, 还是机器先开机. 所以写了下面的挂载方式.
关闭 iscsi 自动发现
/etc/iscsi/iscsid.conf
# node.startup = automatic
node.startup = manual
开机启动脚本
log_file="/root/local.mount.log"
echo `date "+%F %T"` rc.local: start mount >> "$log_file"
while true;do sleep 2;ping -c 1 192.168.100.22; if [ $? -eq 0 ]; then break; fi done
echo `date "+%F %T"` ping 100.22 success >> "$log_file"
iscsiadm -m discovery -t st -p 192.168.100.22
iscsiadm -m node --targetname "iqn.com.stratifyd:Target-dianping" --portal "192.168.100.22:3260" --login
echo start mount dianping_data >> "$log_file"
mount -U 15abcb0e-2f88-414d-8141-e2bc181cd26f /dianping_data/ && echo `date "+%F %T"` mount success >> /root/local.mount.log || echo `date "+%F %T"` mount failed >> "$log_file"
echo "" > "$log_file"
exit 0
一直 ping NAS机器, 直到 ping 通再执行相关操作.
UUID 需要用blkid
命令获取
把脚本添加到开机启动
echo "/bin/bash /root/rc.local/mount.sh" >> /etc/rc.local