将clvm的状态改成no-clustered
来源:互联网 发布:手机如何连接电脑网络 编辑:程序博客网 时间:2024/04/30 14:05
简介
clvm(The Clustered Logical Volume Manager),是lvm的一些列集群扩展,这些扩展使得集群中的节点能够通过lvm来管理共享存储,例如SAN.
那么我们什么时候使用clvm呢?
当我们的集群系统中多个活跃节点都需要访问同一个存储时,我们就必须使用clvm。clvm的原理是在存储上建立lvm,然后通过锁控制使得用户进行配置和管理存储。
实验背景
例如当我们集群使用gfs挂在的共享存储出问题,需要将其挂在到另一台服务器上来备份数据,由于这台服务器是一台独立的机器,没有集群中的环境,就会出现一些问题。
解决过程
1.我们先将存储挂载到新服务器上
[root@test ~]#iscsiadm -m discovery -t sendtargets -p 10.20.3.10[root@test ~]#iscsiadm -m node -T iqn.2001-05.com.equallogic:0-8a0906-20ed24b07-fa4000047ac56fcb-pic-new-01 -p 10.20.3.10:3260 -l[root@test ~]#fdisk -lDisk /dev/sdb: 1438.7 GB, 1438679826432 bytes255 heads, 63 sectors/track, 174909 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0xd3997559 Device Boot Start End Blocks Id System/dev/sdb1 1 174910 1404959744 8e Linux LVMDisk /dev/mapper/vg_test-test: 590.6 GB, 590633500672 bytes255 heads, 63 sectors/track, 71807 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0x00000000Disk /dev/sdc: 1073.7 GB, 1073747066880 bytes255 heads, 63 sectors/track, 130542 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0x00000000
从上面看能够正常挂在。
2.查看存储上的pv是否存在
[root@test ~]# pvs Skipping clustered volume group cluster_vg_test Skipping volume group cluster_vg_test PV VG Fmt Attr PSize PFree /dev/sda2 vg_test lvm2 a-- 7.81g 0 /dev/sda3 vg_test lvm2 a-- 550.07g 0
上面提示“skipping clustered volume group cluster_vg_test”,其中cluster_vg_test正是我们在集群环境中基于存储创建lvm的vg名称,但是它被跳过了。这是由于cluster_vg_test是基于clustered创建的,而现在的这台服务器上是没有clustered扩展的,因此会被忽略,我们可以通过设置lvm的locking_type=0来解决。
[root@test ~]# vgchange -cn cluster_vg_test --config 'global {locking_type = 0}' WARNING: Locking disabled. Be careful! This could corrupt your metadata. Unable to determine exclusivity of nasdb Volume group "cluster_vg_test" successfully changed
更改后,我们就可以看到lvm的相关信息了
[root@test ~]# pvs PV VG Fmt Attr PSize PFree /dev/sda2 vg_test lvm2 a-- 7.81g 0 /dev/sdc cluster_vg_test lvm2 a-- 500.00g 0 [root@test ~]# lvs LV VG Attr LSize Pool Origin Data% Move Log Cpy%Sync Convert gfs_test cluster_vg_test -wi-ao---- 500.00g LogVol00 vg_test -wi-ao---- 7.81g [root@test ~]# lvscan inactive '/dev/cluster_vg_test/gfs_test' [500.00 GiB] inherit ACTIVE '/dev/vg_test/test' [7.81 GiB] inherit
从以上看出,虽然lvm能够正常显示,但是lv让处于inactive状态,我们仍需要将lv的状态设置成active
[root@test ~]# lvchange -ay /dev/cluster_vg_test/gfs_test [root@test ~]# lvscan ACTIVE '/dev/cluster_vg_test/gfs_test' [500.00 GiB] inherit ACTIVE '/dev/vg_test/test' [7.81 GiB] inherit
现在我们的lvm正常了,挂载后能够正常读取了。
3.将lvm以gfs2文件系统进行挂载
[root@test ~]# mount -t gfs /dev/cluster_vg_test/gfs_test /datamount: Transport endpoint is not connected
由于lvm使用的是gfs文件系统,而这台机器没有gfs工具,因此我们需要安装
yum install gfs2-utils
由于gfs2通过锁机制来阻止冲突,因此需要解除锁机制。
[root@test ~]# gfs2_tool sb /dev/cluster_vg_test/gfs_test proto lock_noneYou shouldn't change any of these values if the filesystem is mounted.Are you sure? [y/n] ycurrent lock protocol name = "lock_dlm"new lock protocol name = "lock_none"Done#重新挂载[root@test ~]# mount -t gfs /dev/cluster_vg_test/gfs_test /dataerror mounting /dev/dm-4 on /data: No such file or directory
仍然不能挂在,从/var/log/messages中得到以下信息:
kernel: GFS2: can't find protocol lock_none
提示,gfs2找不到对应lock_none的协议,我们应该将其设置成lock_nolock
[root@test ~]# gfs2_tool sb /dev/mapper/nasVG2-nasdb proto lock_nolockYou shouldn't change any of these values if the filesystem is mounted.Are you sure? [y/n] ycurrent lock protocol name = "lock_none"new lock protocol name = "lock_nolock"Done#重新挂载[root@test ~]# mount -t gfs /dev/cluster_vg_test/gfs_test /data
OK,lvm已经能够成功挂载。
总结
当存储从一台机器换到另一台机器挂载使用的时候,其lvm信息仍保存在磁盘当中,我们只需要在新机器上激活即可;但是基于cluster的lvm需要根据所使用的文件系统进行解除相关锁机制才能够挂载使用。
补充
当我们在解除通过iscsi挂载的存储时,没有先删除逻辑卷,而是直接iscsiadm -m node …. -u,此时查看lvm时会有错误。
[root@test ~]# vgscan Reading all physical volumes. This may take a while... /dev/vg_test/lv_test: read failed after 0 of 4096 at 9663672156160: Input/output error Found volume group "vg_test2" using metadata type lvm2 Found volume group "vg_test1" using metadata type lvm2
由于我们将挂载的网络盘卸载并删除,而lvm的相关配置信息没有卸载,则会报错,我可以通过以下方式解决:
[root@test ~]# dmsetup ls vg_test-lv_test (253:4)vg_image2-lv_image2 (253:5)vg_image1-lv_image1 (253:3)[root@test ~]# dmsetup remove vg_test-lv_test再次输入vgscan则正常。[root@picture-118-new ]# vgscan Reading all physical volumes. This may take a while... Found volume group "/dev/vg_test/lv_test" using metadata type lvm2 Found volume group "vg_test2" using metadata type lvm2 Found volume group "vg_test1" using metadata type lvm2
- 将clvm的状态改成no-clustered
- 怎么将下面的sql改成Hql?
- 将CentOS的系统时间改成北京时间
- 将中文版的ubuntu改成英文
- CLUSTERED 和NONCLUSTERED的区别
- 如何将基于对话框的工程改成基于BCG的
- 如何将基于对话框的工程改成基于BCG的
- Android 将自己的应用程序改成系统的应用程序
- 将虚拟机的ip改成固定的ip地址
- 如何将你的虚拟机改成汉化版的虚拟机
- 将NAN 改成 1,有的时候改成 0
- 如何将QuickStart的默认语言改成C#
- 如何将QuickStart的默认语言改成C#
- 将把普通文件夹改成受保护的操作系统文件
- 将z-blog改成英文blog所遇到的问题
- 将销售订单中docType改成下拉列表的方法
- 将window下的fat32格式改成ntfs格式
- 将Ubuntu主文件夹里的中文文件夹名称改成英文
- Eclipse调试问题 adb connection Error:远程主机强迫关闭了一个现有的连接
- 数组打乱小例子
- linux shell 中的sleep命令
- eval简单用法
- 函数
- 将clvm的状态改成no-clustered
- 绑定一把枪到手上,添加一个开枪的效果
- 彩票小例子
- 【bzoj1444】【jsoi2009】【有趣的游戏】【AC自动机+矩阵乘法】
- CSS3重复渐变(线性和径向渐变)
- APP跳到AppStore 下载的实现
- linux vlan configuration
- python爬虫1
- UML类图建模简介