11 :Vgchange命令小结!
看到别的坛子里有篇关于vgchage命令的小结,觉得不错,拿来与大家共享一下。
1)vgchange是激活/去激活卷组的命令,在单机环境它通常的用法是
vgchange –a y/n vgXX
具体用法:
#vgchange –a y vgXX #激活卷组
#vgchange –a n vgXX #去激活卷组
大部份LVM操作只能在VG被激活时做,也有少数操作只能在VG被去激活的状态下执行,比如说vgexport。
2)当几台主机共享一个VG时,如果在多台主机上激活VG,那么每一台主机都可能对数据进行修改,而其他的主机却不知道数据已被改变,这样数据的完整性无法保证。
所以在Cluster环境下,将共享VG的属性置为exclusive模式。这样,当一台主机已经以exclusive 模式激活
VG之后,在其他的主机上无法再激活这个VG,这样就保证了数据的完整性。应用VG独享方式需要安装MC/SG,其控制命令是vgchange –c y/n vgXX,
具体用法:
#vgchange –c y /dev/vgXX #设置VG的exclusive属性,设置之后VG无法以vgchange –a y 激活。
# vgchange –c n /dev/vgXX #去掉VG的exclusive属性,当然设置之后就无法用vgchange –a e 来激活这个VG了。
#vgchange –a e /dev/vgXX #以exclusive模式激活卷组,只在cluster环境下有效,需要首先vgchange –c y /dev/vgXX
#vgchange –a n /dev/vgXX #在cluster模式下去激活一个VG,仍然是用这个命令。
3)并不是所有的场合,都不允许VG同时在两台以上的主机上被激活。在应用Oracle OPS时就是一个例外。这时卷组被以一种共享的方式激活,数据的完整性由应用程序(这里当然就是Oracle OPS)来保证。
因为操作系统本身无法保证数据的完整性,所以设成共享模式激活的卷组必须使用裸设备,这样OS不会对该设备进行缓冲,而完全交给应用程序处理。
应用VG的共享方式需要安装MC/SG OPS edition.,其控制命令是vgchange –a s/n vgXX
具体用法:
#vgchange –c y –S y /dev/vgXX #设置VG为共享模式,设置成功后VG只能用vgchange –a s 激活,如果要用vgchange –a y激活,则必须先将VG的共享模式去掉(用vgchange –S n
/dev/vgxx).
#vgchange –a s /dev/vgXX #以共享方式激活VG
#vgchange –a n /dev/vgXX #在共享模式下去激活方法不变
4)小结
可以看到,VG可以有很多种状态。大概包括激活、去激活、独占模式(exclusive)、共享模式(shared)等。可以通过vgchange命令带不同的参数来改变VG的状态。通常对VG进行修改,比如说在VG中增加一个PV、增加一个LV或改变LV大小等操作,都要求VG
处在激活或是独占模式。
在Cluster环境下,很多LVM操作可以通过在一台主机上进行,再用vgimport同步到cluster
中的其他主机上。但是在共享模式激活时,这些操作通常是不可以完成的。所以在为客户扩充、增加LV时,就要先了解客户的环境,以确定是否需要预定DOWN机时间。
经验共享:从PVLink看设备名
作者:大漠孤舟
一天发现dmesg出来好多,PVLink failed,但是不知道是哪块盘,不着头绪。今日细细看了,作如下解释:
“LVM: VG 64 0x0c0000: PVLink 31 0x0cd400 Failed! The PV is still accessible.”
0x0c0000 这是VG 的Minor ID
0x0cd400 0c这两位为该设备对应的Bus ID
d这一位为该设备的target ID
4这一位为该设备的LUN ID
00不知道这两位是标识何东东
因此0x0cd400对应的设备名为:c12t13d4
关于HP-UX中的syslog机制简单来说,syslog的机制就和它的名字一样,是记录系统日志的。
在HP-UX中,会在rc2.d的运行级别中启动S220syslog。通过ls -l /sbin/rc2.d/S220syslog可以看出来,它是指向/sbin/init.d/syslogd的联接。
系统日志会由syslog()将记录的日志发送给syslogd,然后syslogd会根据/f中的配置,将日志过滤,并写入到相应的文件当中,成为我们日常维护时需要检查的日志文件。根据/f文件的配置内容,syslogd会做以下几件事情:
1. 记录到系统日志中;
2. 写到系统控制台上;
3. 转发给指定的用户;
4. 转发给其他主机的syslogd。
我们现在已经知道了,syslogd会在系统自动的时候,由/sbin/rc2.d/S220syslog启动起来,如果需要手工停止或者启动syslogd,可以用以下命令:
#/sbin/init.d/syslogd stop
#/sbin/init.d/syslogd start
/f文件中的每一行记录由“选项(Selector)”和“动作(Action)”两部分组成,两者之间用Tab制表符进行分隔。而“选项(Selector)”又由一个或多个形如“类型.级别”格式的保留字段组合而成,各保留字段由“;”分隔。
保留字段中的类型表示日志产生的源头,一般为以下类型:
1. LOG_KERN
由kernel产生的日志。这一类日志是不会由任何用户进程产生的。
2. LOG_USER
由用户进程产生的日志。
3. LOG_MAIL
邮件系统产生的日志。
4. LOG_DAEMON
由系统后台进程产生的日志,例如:ftpd,inetd等等。
5. LOG_AUTH
由login,su,getty等进行身份认证时产生的日志。
6. LOG_SYSLOG
由syslogd自己产生的日志。
7. LOG_LPR
打印时产生的日志。
8. LOG_NEWS
由网络新闻系统产生的日志。
9. LOG_UUCP
由UUCP产生的日志。
10. LOG_CRON
由cron和at工具产生的日志。
11. LOG_LOCAL0 - 7
保留给local使用。
保留字中的级别表示信息的重要程度,一般为以下几类:
1. LOG_EMERG
nodeselector一般是表示发生panic了,此级别的信息会发送给所有的拥护。
2. LOG_ALERT
一般表示当前的状态需要立即修正,例如数据库崩溃。
3. LOG_CRIT
严重警告,一般表示发生了硬件故障。
4. LOG_ERR
错误,严重性没有以上三类那样大。
5. LOG_WARNING
警告信息。
6. LOG_NOTICE
注意信息。并不表示错误,但是应该尽可能的处理。
7. LOG_INFO
一般信息。
8. LOG_DEBUG
一般表示调试程序时候的信息。
syslog()不会记录没有级别定义的日志。如果syslog()无法将日志传递给syslogd,并且LOG_CONS选项已经打开了,那么它会尝试将信息写到/dev/console。
当下列两种情况发生的时候,syslog日志记录不会成功:
1. /dev/log写入被阻塞了;
2. /dev/log不能被成功打开。
以上介绍了“选项(Selector)”的一些内容,下面继续介绍“动作(Action)”。Action表示日志信息要发往的目的地,一般为以下几类:
1. /filename
日志文件。这里需要使用到绝对路径,而且应该已经生成了这个文件。在这里,大家可以做这样两个测试,一个是如果之前没有生成这个文件,是否会在有该类日志信息的时候自动生成,一个是限制写入该文件的权限,看看是否能够成功记录。
2. user1,user2
指定用户。如果指定的用户已经的登陆,那么他们将会收到信息。*代表所有的用户。
3. @host
远程主机。
根据以上内容,大家就可以去研究研究/f中的内容了。当然,也可以根据自己的需要来修改/f的内容。
需要注意的是,如果修改了/f的内容,需要重新启动syslogd进程。
经验共享:HPUX根卷空间扩大的方法
根卷的空间是否只能用make_recovery磁带重导系统时才能修改?
最近我们新来的兄弟做了个测试,根卷的空间最主要是要保持连续,只要能够保留或挪出足够的连续空间就可以扩充了。
Dipper的经验
刚才做了一下,成功了。把步骤贴上来:
1、新建逻辑卷lvtmp:lvcreate -L 500M -n lvtmp vg00;
2、对新卷建立vxfs文件系统:newfs -F vxfs /dev/vg00/rlvtmp;
3、将该卷挂到新建的/tmp1目录上:mkdir /tmp1;mount /dev/vg00/lvtmp /tmp1;
4、将/tmp中的内容拷贝到/tmp1中:cp /tmp/* /tmp1;
5、修改/etc/fstab文件,将其中的/tmp所在行的/dev/vg00/lvol4修改为/dev/vg00/lvtmp;可以先备份fstab文件;
6、重启主机;
7、bdf查看当前配置,这个时候/tmp应该已经在/dev/vg00/lvtmp上;
8、删除/dev/vg00/lvol4:lvremove /dev/vg00/lvol4;这个时候lvol4里面的PE都已经被释放出来,假设原来的lvol4有500M,那么现在根目录就可以扩充500M,假设原来lvol3有500M;
9、扩lvol3:lvextend -L 1000M /dev/vg00/lvol3;
10、扩根目录文件系统:fsadm -F vxfs -b 1000M /;(前提是安装OnLineJFS)
11、bdf查看扩充结果;
12、如果当前空间仍然不够用,可以如法炮制从/dev/vg00/lvol5继续重复上面的操作。
MC/SG在线修改的几点小结
注:此处所有的配置或修改都是CLUSTER在运行状态下的,这里不讨论CLUSTER在停止状态下的情况:
(假设环境:现有NODE1和NODE2组成的CLUSTER1;上面分别运行着包PKG1和
PKG2;NODE3不在CLUSTER里.)
1. 在运行的集上将NODE3加进CLUSTER1:
#cd /etc/cmcluster/
#cmgetconf -C backup.ascii
#cmquerycl -C cmclconf.ascii -c cluster1 -n node1 -n node2 -n node3
#cmcheckconf -C cmclconf.ascii
#cmapplyconf -C cmclconf.ascii
#cmrunnode node3
2. 在运行的集上将NODE3从CLUSTER1中删除:
#cd /etc/cmcluster/
#cmgetconf -C backup.ascii
#cmhaltnode -f node3
#cmquerycl -C cmclconf.ascii -c cluster1 -n node1 -n node2
#cmcheckconf -C cmclconf.ascii
#cmapplyconf -C cmclconf.ascii
3. 在运行的集上更改卷组配置:
#cd /etc/cmcluster/
#cmgetconf -C backup.ascii
修改cmclconf.ascii文件中卷组的信息,以适合你的要求,若为删除卷组,则还要修改响应的PKG配置文件.
#cmcheckconf -C cmclconf.ascii
#cmapplyconf -C cmclconf.ascii
4. 在运行的集上添加程序包pkg3
#cd /etc/cmcluster
#cmgetconf -C backup.ascii
#cmcheckconf -P /etc/cmcluster/f
#cmapplyconf -P /etc/cmcluster/f
将PKG3的控制脚本拷贝到NODE1和NODE2的对应目录下面去.
#cmrunpkg pkg3
5. 在运行的集上重新配置程序包pkg3
#cd /etc/cmcluster/pkg3
#cmhaltpkg pkg3
#cmgetconf -P pkg3.ascii
编辑该文件及其控制脚本以符合你的要求.
#cmcheckconf -P /etc/cmcluster/pkg3/pkg3.ascii
#cmapplyconf -P /etc/cmcluster/pkg3/pkg3.ascii
将PKG3的控制脚本拷贝到NODE1和NODE2的对应目录下面去.
#cmrunpkg pkg3
6. 在运行的集上删除程序包pkg3
#cd /etc/cmcluster/pkg3
#cmgetconf -P pkg3.ascii
#cmmodpkg -d pkg3
#cmhaltpkg pkg3
#cmdeleteconf -p pkg3
:/etc/lvmrc的妙用!
昨天在用户那遇到一个问题,一个MC里的两台机器各有两个vg不归mc管,但需要在系统启动后自动激活并mount上。
我们知道控制vg在启动时激活可以更改/etc/lvmrc文件,如下的这个函数,在里面添加需要激活的vg即可。
但是自动mount这些vg里的lv该怎么解决呢?修改/etc/fstab?
我不太清楚系统在启动后是先执行lvmrc还是先调用/etc/fstab来Mount逻辑卷。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。