修改Linux存储挂载点时遇到的离奇问题
先把好友打个广告
,19C OCM课程由大佬“尹海文”主讲
目前主要从事通讯运营商行业相关数据库工作,10年数据库行业从业经验,擅长Oracle数据库包括运维管理、架构设计与实施、性能调优等;丰富的Oracle Exadata数据库一体机实战经验;熟悉其他数据库,如MySQL、Redis、MongoDB、ES等。
有需要的小伙伴按下图报名
下面开始正文
1、说说问题的场景
朋友有个服务器A通过ISCSI多路径挂载了一个存储,多路径共合并成8块磁盘,每块磁盘58T,通过LVM合并成1个大的VG,划成了XFS文件系统挂载到主机的/var/www目录下。
现在要把映射给A服务器的这些个存储卸载,映射给B服务器。
2、说说操作步骤
这个整体上来说不难,总的来说几步
1、在A服务器关闭应用
2、fuser -ck /var/www 彻底杀死目录进程
3、umount /var/www
4、断开所有ISCSI连接
iscsiadm -m node -U all
5、刪除所有 node 信息 :
iscsiadm -m node --op delete
6、登录到B服务器,安装multipath,安装open-iscsi,把A主机的multipath.conf拷贝过来到/etc下
7、把ISCSI连线接到B服务器,修改存储端映射的IQN启动器名称
8、使用以下命令重新建立链接
iscsiadm -m discovery -t st -p <存储Ip>iscsiadm -m node -p <存储Ip> -lsystemctl enable iscsi.serviceiscsiadm -m node -o update -n node.startup -v automatic
9、识别到磁盘后,重启multipathd服务,识别LUN
10、lvscan重新扫描,不出意外,lv会自动激活,再检查下vgs/pvs/lvs状态。
11、修改fstab,添加挂载点,再mount -a挂即可恢复。
3、说说问题的现像
这里就奇怪了,朋友说B主机识到别磁盘都对、LVM也正常,但是如果执行mount -a就会返回文件系统有超级块错误。
但是手动挂载mount /dev/mapper/datavg-datalv /mnt
这都没毛病,而且cd /mnt也可以进行读写操作,这就离谱了!
4、排错解决
即然是提示超级块有错误,于是让他执行检查命令
xfs_repair -n /dev/mapper/datavg-datalv
看了下结果,没什么毛病,为啥会报这个超级块有错呢,整体检查下来没发现啥错误呢。
于是尝试让他再执行下mount -a
然后按提示dmesg |taill 查看有什么报错,结果。。。
提示unknow mount option [defautls]
再看看他发来的配置文件/etc/fstab,问题很明显了,就是写错了个单词!defaults 写成了defautls,一字之差,就报错,哈哈。
5、总结
一个本不复杂的变更,结果搞了半天,最后就是单词写错了。
类似这种问题在Linux上很容易出现,比如你配置文件里多写了个空格、少个{或者'、明明看着一样的配置文件重新粘贴就好用。这些细微差距有时候很难发现。
建议大家修改前做好配置备份、仔细检查核对配文件,以免小错误造成大麻烦。