Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1422914
  • 博文数量: 122
  • 博客积分: 340
  • 博客等级: 一等列兵
  • 技术积分: 2967
  • 用 户 组: 普通用户
  • 注册时间: 2009-04-01 11:50
个人简介

说点什么呢

文章分类

全部博文(122)

文章存档

2018年(2)

2017年(1)

2015年(2)

2014年(30)

2013年(81)

2011年(5)

2009年(1)

分类: LINUX

2014-01-09 14:38:39

三、LVM管理

1. LVM命令行的通性

a) 当今天需要指定大小的参数时,单位需要明确的指定。如果没有指定,LVM默认单位为KB或者MB

b) 在指定单位时,LVM 是不区分大小写的。例如 和 一样,都是指1024进阶的。而当使用unit参数时,则小写字母表示1024进制,而大写字母表示1000进制。

c) 当命令使用卷组或者逻辑卷作为参数时,可以使用全路径。例如你可以用 vg0/lv0 来表示 vg0 卷组中的 lv0 逻辑卷。如果要求给出卷组的地方没有给出,则默认用一个含有全部卷组的列表代替如果要求给出一个卷组中的某个逻辑卷的地方没有给出,则默认用该 vg 的全部逻辑卷列表代替例如 lvdisplay vg0 会默认显示 vg0 卷组的全部逻辑卷。

d) 所有的LVM命令都接受-v参数,表示输出进入冗余模式。也就是输出详细的信息。例如:
# vgscan  (不带-v参数时的输出)

  Reading all physical volumes.  This may take a while...

  /dev/cdrom: open failed: No medium found

  No volume groups found
# vgscan –v  (-v参数时的输出)

    Wiping cache of LVM-capable devices

    Wiping internal cache

  Reading all physical volumes.  This may take a while...

    Finding all volume groups

  /dev/cdrom: open failed: No medium found

  No volume groups found

还可以用 vv , -vvv , -vvvv来获得很详细的信息。

e) LVM是通过其内部的UUID来区分每个对象的,而这些UUID是在对象建立的时候指定的。这很有用,例如:如果你从一个VG里拿掉了名字为/dev/sdfVG,而当你放回去的时候,它的名字可能变成/dev/sdk了。但是LVM却仍然可以找到那个PV,因为其UUID没有变。

2. 建立物理卷  Creating Physical Volumes

a) 设置分区类型
假如你使用一整个磁盘设备来作为 pv ,磁盘必须没有分区表,也就是之前没有被分区过。对于整个磁盘,只有一个分区表,删除这个分区表可以快速的高效的删除整个磁盘上的数据。可以通过向第一个磁道写0来清除分区表,方法是:

dd if=/dev/zero of=PhysicalVolume bs=512 count=1

b) 初始化物理卷Initializing Physical Volumes
使用 pvcreate 命令来初始化一个块设备称为一个 pv 。这有点类似于格式化一个文件系统
pvcreate 命令用于初始化一个或者多个设备成为 pv ,格式是 pvcreate 
要初始化分区而不是整个磁盘,使用  pvcreate  下面这个初始化了 /dev/hda10 /dev/hda11 /dev/hda12分区为物理卷
pvcreate /dev/hda10 /dev/hda11 /dev/hda12

c) 扫描块设备Scanning for Block Devices
可以通过lvmdiskscan命令来扫描块设备来确认哪些可以用来做PV。扫描结果如下:
# lvmdiskscan
  /dev/hda1  [      101.94 MB] 
  /dev/hda2  [        9.77 GB] 
  /dev/hda3  [        7.81 GB] 
  /dev/hda4  [        1.00 KB] 
  /dev/hda5  [        4.88 GB] 
  /dev/hda6  [        1.95 GB] 
  /dev/hda7  [        1.46 GB] 
  /dev/hda8  [      502.00 MB]   
  /dev/hda9  [      502.00 MB] 
  /dev/hda10 [        1.87 GB] LVM physical volume
  /dev/hda11 [        1.87 GB] LVM physical volume
  /dev/hda12 [        1.87 GB] LVM physical volume 
  /dev/hdb1  [       15.47 GB] 
  /dev/hdb2  [        1.00 KB] 
  /dev/hdb5  [       26.15 GB] 
  /dev/hdb6  [       32.88 GB]
上面还” LVM physical volume”表示是物理卷

3.显示物理卷
   有三个命令可以用来显示LVM的物理卷的属性,他们是:pvs, pvdisplay pvscan
  pvs命令可以在配置文件中提供PV的信息,即pvs命令可以用在脚本中和配置文件中。它每个PV信息显示一行。Pvs命令有大量的格式化输出的控制,这在脚本中很有用。
pvdisplay:针对每个PV在多行里输出详细的属性信息。它以固定的格式显示物理属性(大小,区,卷组等)。下面是一个PVpvdisplay的输出
# pvdisplay /dev/hda10
-- NEW Physical volume ---
  PV Name               /dev/hda10
  VG Name               
  PV Size               1.87 GB
  Allocatable           NO
  PE Size (KByte)       0
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               Y73i8s-0AYb-rsmP-HlgY-111k-K3VQ-XcdjMb
pvscan: 命令扫描所有的已经存在的 pv  下面是pvscan 的输出
# pvscan
 /dev/cdrom: open failed: No medium found
PV /dev/hda10         lvm2 [1.87 GB]
PV /dev/hda11         lvm2 [1.87 GB]
PV /dev/hda12         lvm2 [1.87 GB]
Total: 3 [5.61 GB] / in use: 0 [0   ] / in no VG: 3 [5.61 GB]
你可以在 lvm.conf 中定义一个过滤器,这样 pvscan 就不会扫描这些设备了。

4.阻止PV被分配
你可以使用pvchange命令来阻一个或多个PV上的空闲PE被分配。这可能在磁盘有错误或者你打算将删除一个PV时是很必要的。
下列的命令禁止/dev/hda12上的PE被分配
pvchange -x n /dev/hda12
可以用带 xy的参数的pvchange命令来恢复之前被禁止分配的PE

5.重新调整PV的大小Resizing a Physical Volume
     如果因为某种原因的需要,你可以使用pvresize命令来调整一个PV的大小,哪怕这个PV正在被LVM使用。

6.删除PV Removing Physical Volumes
   假如一个设备不再需要被使用时,你可以使用 pvremove 命令来删除它它会把该 pv 上的元数据清零。如果你正要删除的PV是一个卷组的一部分,那么在删除它之前,需要先使用vgreduce命令将这个PV从卷组中移出后,再删除它。

7.创建卷组Creating Volume Groups
   要从一个或者多个 pv 中建立一个卷组,使用 vgcreate 命令。vgcreate 命令建立一个新的卷组,它至少需要一个 pv 
   以下的命令建立一个卷组,名为 vg1 ,含有两个 pv ,分别是 /dev/hda10 和 /dev/hda11
   # vgcreate vg1 /dev/hda10 /dev/hda11
      Volume group "vg1" successfully created
   当 pv 被加入到卷组中时,它的磁盘空间默认被分成 4MB 大小一个的多个 extent 。一个 extent 是逻辑卷可以扩展或者缩小的最小单位。extents 数量即使很多也不会影响到逻辑卷的 IO 性能
    在创建卷组时,可以用带参数-svgcreate 命令来指定extent的大小。同时,也可以用参数-p -l 来指定可以到加入到个卷组的PV数及该卷组可以分的LV的个数。
    默认情况下,一个卷组会按照常识来分配 PE ,例如不把并行的条带放在同一个物理磁盘上。这称为 normal 策略。
    可以使用 --alloc 参数来指定 PE 的分配策略 :contigiousanywherecling之一。
注:
VG 和 LV 都有分配策略一词,对于 VG 来说,默认的分配策略是 normal ;对于 LV 来说,默认的分配策略是 inherit(继承)
   LVM 卷组和设备文件都在 /dev/ 下,而 lv 设备文件则是 /dev//

8.增加pv到现有的卷组Adding Physical Volumes to a Volume Group
vgextend命令可以将额外的PV添加到现有的VG中。添加新的PV到一个卷组中可以增加这个卷组的容量。下列命令就是添加/dev/hda12到现有的vg1之中
     # vgextend vg1 /dev/hda12

9、显示卷组信息Displaying Volume Groups

a) Vgsvgdisplay这两个命令都能显示LVM卷的属性;

b) 尽管vgscan命令的主要目的是扫描所有的卷组的磁盘且重建LVM的缓存文件,但是它也可以显示卷组的信息;

c) Vgs命令提供的是卷组的配置信息,每个卷组显示一行信息。同时这个命令提供了大量的输出格式的控制选项,而且这个命令在脚本很有作用。

d) Vgdisplay命令用固定的格式显示卷组的属性,如大小 extentspv的个数等。以下就是vgdisplay的输出信息:
# vgdisplay
--- Volume group ---
VG Name               vg2
System ID                    注:这个值是什么含义
Format                lvm2
Metadata Areas        3       注:这里为什么是3
Metadata Sequence No  1
VG Access             read/write
VG Status             resizable
MAX LV                0
Cur LV                0
Open LV               0
Max PV                0
Cur PV                3
Act PV                3
VG Size               5.60 GB
PE Size               4.00 MB
Total PE              1434
Alloc PE / Size       0 / 0   
Free  PE / Size       1434 / 5.60 GB
VG UUID               N382E3-vA21-wF56-3F1W-uHYj-X53t-yKjbc2

10、扫描磁盘以发现卷组并重建缓存文件Scanning Disks for Volume Groups to Build the Cache File

a) vgscan 命令扫描系统中所有的磁盘,以找到物理卷和VG。这个命令会重建/etc/lvm/.cache文件,该文件保存着当前LVM的设备列表。

b) LVM会在系统启动的时候或者某些LVM操作,如执行vgcreate命令或LVM检测到系统不一致的时候会自动的执行vgscan命令。当修改了系统的硬件配置而使系统在启动的时候没有找到这个硬件,但是现在系统又找到了这个硬件时,可能需要手动执行这个命令。当在SAN上向系统中增加了新的磁盘,或热插拔了一块标识为pv的磁盘时,也必须要手动执行vgscan命令。

c) 可以在lvm.conf文件中定义一个过滤器,来指定哪些设备不会扫描。执行vgscan会输出如下的信息:

# vgscan

  Reading all physical volumes.  This may take a while...
/dev/cdrom: open failed: No medium found
Found volume group "vg2" using metadata type lvm2

  Found volume group "vg1" using metadata type lvm2

      11、从卷组删除PV  Removing Physical Volumes from a Volume Group

a) 要从卷组中删除一个无用的 pv ,使用 vgreduce 命令。vgreduce 命令通过删除一个或者多个空的”pv“来缩小一个 VG 的容量。这可以释放那些 pv 以用于不同的卷组或者从系统中删除所谓空的 PV, 就是上面没有任何 LV 的 pv ,所以使用 vgreduce 之前,需要用  pvmove 把 PV 上的 LV 的数据移动到另外的 PV 上。

b) 在删除一个 pv 之前,你必须确认该 pv 没有被任何 lv 使用,这可以通过 pvdisplay 来得知。(通过 Cur LV 一项)

c) 假如物理卷仍然被使用,你必须把数据移动到另外一个 pv 上,这可以用 pvmove 命令完成,再用 pvremove 删除它。下列命令是从vg2中删除/dev/hda15
# vgreduce vg2 /dev/hda15
然后可以用pvs来验证

12、修改卷组的参数Changing the Parameters of a Volume Group

a) 有一些卷组的参数是可以用 vgchange 命令改变的。 不过它主要的作用是激活/禁用卷组

b) 下面的命令把卷组vg2所允许的最大 lv 数量改为 128 
#vgchange -l 128 /dev/vg2
Volume group "vg2" successfully changed
然后可以用vgdisplay 来验证修改是否成功

     13、激活/禁用卷组Activating and Deactivating Volume Groups

a) 当一个卷组被创建时,默认情况下,这个卷组是激活的。这意味着,在这个卷组上的逻辑卷是可以访问,而且也是可以修改的。

b) 在某些情况下,你可能需要禁用一个卷组。要禁用或激活一个卷组,可以用带参数-avgchange命令处理。命令格式是 vgchange a [y|n] volume_group_name 例如下列命令是先将vg2卷组禁用,之后再激活:
# vgchange -a n vg2
# vgchange -a y vg2

c) 如果集群锁被启用,那么应加上带e的参数的命令将锁的节点排除掉,或者用I参数在本地进行激活和禁用操作。带但个主机快照的逻辑卷总是激活的。

d) 可以用lvchange来单独禁用和激活一个逻辑卷。

      14、删除卷组Removing Volume Groups
           要删除一个卷组,需要先保证其上面没有逻辑卷了,然后用vgremove命令来删除                                           一个卷组,如:
  # vgremove vg2
   Volume group "vg2" successfully removed

 15、分割卷组Splitting a Volume Group

a) 要把一个卷组的 PV 分成两部分,并建立一个新的 VG 可以使用 vgsplit 命令

b) 逻辑卷不可以被分到不同的卷组上。每个现存的逻辑卷必须整体要么在原来的卷组上,要么在新的卷组上。当然,如果需要,你可以用pvmove命令强行来分割逻辑卷。

c) 下列命令是将/dev/hda15物理卷从vg2卷组中分割出来,并生成新的卷组vg3
# vgsplit  -l vg2 vg3 /dev/hda15
Volume group "vg3" successfully split from "vg2"

     16、合并卷组Combining Volume Groups

a) 要将两个卷组合并成一个卷组,可以使用vgmerge命令。你可以把一个非active状态的(源)卷组合并到一个 active 或者 inactive 状态的目标卷组中。过有一些限制

1) 首先两者的 physical extents 大小必须相同

2) 其次两者合并后的 pv 和 lv 的数量不超过目标卷组中的限制。

b) 下面的是将vg3卷组合并到vg1卷组中的命令,并显示详细信息:
# vgmerge -v vg1 vg3
Checking for volume group "vg1"
Checking for volume group "vg3"
Archiving volume group "vg3" metadata.
Archiving volume group "vg1" metadata.
Writing out updated volume group
Creating volume group backup "/etc/lvm/backup/vg1"
Volume group "vg3" successfully merged into "vg1"

     17备份卷组的元数据Backing Up Volume Group Metadata

a) 除非在lvm.conf文件中禁止了,否则每当卷组和逻辑卷改动时,系统都会自动的备份和归档元数据文件。默认情况下,元数据的备份放在/etc/lvm/backup下面,而其归档文件放在/etc/lvm/archives下面。你可以使用vgcfgbackup命令,将元数据文件手动的备份到/etc/lvm/backup下面。

b) 可以使用vgcfgrestore命令将一个归档的元数据恢复到卷组的所有PV上。

     18、卷组重命名Renaming a Volume Group
       方法是:# vgrename vg1 myvg   将 vg1重命名为myvg 

19、移动卷组到另一个系统Moving a Volume Group to Another System

a) 可以将一个卷组整体移动到另外一个系统。建议使用vgexportvgimport命令来完成这个功能;

b) Vgexport命令可以让系统不再访问一个非活动的卷组,这样可以将PV拆开移动到另外一个系统上去。而vgimport命令可以让之前用户vgexport命令移去的卷组重新让系统可以访问。

c) 将一个卷组从一个系统移动到另一个系统的步骤如下:

1) 确认没有用户在访问将来移动的卷组上的文件,然后umount其上的逻辑卷;

2) 用带-a n 参数的vgchange命令将卷组切换成非活动状态,这样可以确保卷组不会被再次访问;

3) 使用vgexport命令将卷组导出,这可以确保系统不会再次访问这个卷组;

4) 当执行完成导出卷组的命令后,使用pvscan命令,可以看出对应的PV是处理导出状态 注:在测试环境中,没有看出效果

5) 然后关闭系统,将组成卷组的物理卷的硬件拔出后插到新的系统中去;

6) 在新的系统中执行vgimport命令,将卷组导到新的系统中;

7) 使用带-a y vgchange命令将新导出的卷组激活;

8) 挂接文件系统

20、重建卷组目录(设备文件) Recreating a Volume Group Directory
        vgmknodes命令可以用来重建卷组目录和逻辑卷文件。这个命令在/dev目录下检查活  

动逻辑卷所需要的LVM2文件。它可以建立起丢失的文件,同时可以清除不需要的文件。

   带mknodes参数的vgscan命令的功能与vgmknodes命令类似;

   21、创建逻辑卷Creating Logical Volumes

a) 要建立一个逻辑卷,使用 lvcreate 命令。你可以建立线性卷,条带化的逻辑卷,镜像卷。

b) 假如你不指定一个逻辑卷的名称,默认是 lvol# 是逻辑卷的内部编号

c) 建立线性逻辑卷

1) 当你建立逻辑卷时,逻辑卷是在卷组的可用 extents 上建立的一般情况下,逻辑卷会使用全部可用的空间。

2) 下列命令是在myvg卷组上建立一个1G的逻辑卷
# lvcreate -L 1G myvg
Logical volume "lvol0" created  注意:这里建立的逻辑卷的名字是lvol0, 

这是系统自动指定的,因为在创建逻辑卷时,没有指定逻辑卷的名字

3) 下列命令是在myvg卷组上收建一个大小为100M的名字为lv1的线性卷:
   # lvcreate -L 100 -n lv1 myvg    注:这里用-n参数指定要建立的逻辑卷                   名字,大小中如果不带单位,则为M

4) 参数可以用vg的百分比和可用空间的百分比来指定建立的逻辑卷大小如:
#lvcreate l 50%VG n lv2 myvg   整个VG50%大小
#lvcreate l 50%FREE n lv3 myvg 可能空间的50%大小
注意:
   上述的作法在测试环境中测试不成功

5) 建立全部可用空间的LV
# vgdisplay myvg | grep "Free  PE"    查出可能的PE是多少
Free  PE / Size       1628 / 6.36 GB   这说明还有1628个可能的PE
# lvcreate -L 1628 -n lv2 myvg   建立所有可用空间的LV

6) 你甚至还可以指定逻辑卷要使用该 PV 的那些 physical extents ,格式是 :-:-。如:
lvcreate -l 100 -n testlv testvg /dev/sda1:0-25 /dev/sdb1:50-125

7) 一个lv的 extents 如何分配的策略默认是 inherit ,和 vg 的一样。 你可以用 lvchange 改变这些策略。

d) 建立条带化的逻辑卷

1) 对于大的连续的读和写,建立一个条带化的逻辑卷可以提高 I/O 的性能。

2) 当你建立一个条带化的逻辑卷时,你可以指定用 -i 指定条带的数量。这决定了该逻辑卷会使用多少个 pv 来做条带。stripe 的数量不能大于卷组中的 pv 数量,除非使用 --alloc anywhere 参数

3) 条带大小必须是 2的幂,在 4KB 到 512KB 之间,-I 用于指定条带的大小,单位是 KB

4) 如果组成条带逻辑卷的PV的大小不一样,那么条带卷的大小决定于最小的设备的那个。例如,由两个条带组成的逻辑卷,那么其大小就是较小设备那个大小的两倍。在一个由3个 pv组成的条带化 lv 中,lv 的最大容量是三倍那个最小 pv 的容量

5) 下面的命令是在vg2卷组上建立一个条带化的逻辑卷,分布在2个 pv 上,每个 stripe 的大小是 64KB 。 逻辑卷大小是 1GB ,名为 mylv 
# lvcreate -L 1G -i2 -I64 -n mylv vg2
Logical volume "mylv" created

6) 和线性逻辑卷一样,striped 逻辑卷也可以指定在那些 pv 上建立,并指定要使用 extents。下面这条命令是将 testvg/dev/sda10~50/dev/sdb1 50~100extends 建成一个条带LV
lvcreate -l 100 -i2 -nstripelv testvg /dev/sda1:0-50 /dev/sdb1:50-100

e) 建立镜像逻辑卷Creating Mirrored Volumes

1) 当你建立镜像卷时,你可以用 -m 指定额外拷贝的数量。例如,-m1表示1镜像拷贝,这样系统中就有2份数据了。同样,-m2表示建立两份镜像拷贝,这样系统中就有三份同样的数据拷贝了。需要注意的是:-m指定的值是指拷贝的数量,而不含源数据的那份。

2) 下面的命令建立一个镜像卷,带1个拷贝。该逻辑卷大小是 50GB
lvcreate -L 50G -m1 -n gfslv vg0
注意:在测试环境中没有成功,可能是版本不同的原因。

f)  永久设备编号 Persistent Device Numbers

1) 主设备号和次设备号在模块加载的时候会自动分配。有些应用程序期望有固定的设备号。在执行lvcreatelvchange命令时,可以使用以下的参数来指定设备号:

   --persistent y --major major --minor minor

在使用较大的次设备号时,先要确认所使用的设备号是不是被其它设备所使用了。

2) 假如 lv 被当成 NFS 分区使用,最好在 /etc/exports 中设置 fsid 参数,这样就可以不用指定设备号了。

g) 调整逻辑卷大小 Resizing Logical Volumes
            要调整逻辑卷的大小,使用 lvreduce 命令。如果 lv 上面有文件系统,则要先缩

小文件系统。下面的命令就是将myvg下的lvol0减少500M
# lvreduce -L -500 /dev/myvg/lvol0
 注意:

上述命令在测试时,检测其只能减小逻辑卷的大小,而不能增大逻辑卷。而下面的命令不但可以增大逻辑卷,而且也可以减小逻辑卷:

lvresize -d -L +800  /dev/myvg/lvol0   表示将逻辑卷增加800M

而:# lvresize -d -L -1000  /dev/myvg/lvol0  表示将逻辑卷减小1000M

  H修改逻辑卷参数 Changing the Parameters of a Logical Volume
    要改变一个逻辑卷的参数,用 lvchange 命令。Lvchange可以修改逻辑卷的哪些参数,    

可以参考man 手册

  I) 逻辑卷重命名 Renaming Logical Volumes
      # lvrename /dev/myvg/lvol0 /dev/myvg/lv2  将lvol0卷重命名为lv2

  J) 删除逻辑卷 Removing Logical Volumes
要删除一个 inactive 状态的逻辑卷,用 lvremove 命令。你在删除它之前必须用   

umount 卸载上面的文件系统。如果是在集群环境中,还要用 lvchange 把它变成 deactive 状态

   k) 显示逻辑卷Displaying Logical Volumes
          3个命令你可以用于显示逻辑卷 :lvslvdisplaylvscan  这三个命令的功能与

pvvg对应的显示功能类似。

   l) 扩展一个逻辑卷Growing Logical Volumes

1) 增加一个逻辑卷的大小,使用 lvextend 命令 注:在测试时,测得lvresize 也可以有类似的功能

2) 在扩展逻辑卷的大小后,你需要扩展文件系统的大小。 注:如何扩展文件系统的大小?

3) 和 lvcreate 一样,lvextend 在指定增量时可以用百分比的方式,例如 %FREE注:实际测试中没有成功。

22建立快照卷Creating Snapshot Volumes

a) 使用 lvcreate -s 可以建立一个快照卷。快照卷是可写的

b) LVM 快照卷是和集群没有关系的,所以它们必须被排他性的访问

c) 面的命令建立一个快照逻辑卷,100MB 。它是 /dev/myvg/lv2 的快照。假如源逻辑卷上面有文件系统,且一直被更新,这时你可以把快照卷挂载到任意目录,并进行该文件系统的备份,而不用卸载原来的文件系统,这就是快照卷的好处之一。

d) 执行下列命令,出现如下错误:

lvcreate --snapshot -d -L 50 -n mys /dev/myvg/lv2
snapshot: Required device-mapper target(s) not detected in your kerne
出现上述错误的原因是因为:内核默认没有加载快照模块,需要你自己加载。执行modprobe dm-snapshot命令即可,然后执行上述命令:

#lvcreate --snapshot -d -L 50 -n mys /dev/myvg/lv2 可以成功。

e) 假如源逻辑卷上面有文件系统,且一直被更新,这时你可以把快照卷挂载到任意目录,并进行该文件系统的备份,而不用卸载原来的文件系统,这就是快照卷的好处之一。

f) 如果建立了一个快照,那么用lvdisplay命令时,输出的内容即包括源LV的状态信息,也包括快照的LV的信息。

g) 因为快照卷的大小是随着源卷内容的改变而增加的,所以使用临视快照卷的使用率是很重要的,以勉LV满了。如果利用率是100%,则快照卷会完全丢失

23使用过滤器控制 LVM 设备扫描Controlling LVM Device Scans with Filters

a) 在启动的时候,vgscan 命令会自动运行来扫描系统上的块设备,查找 LVM 标签来判断那些块设备是 PV 。 然后读取该 pv 上的 metadata ,来构建出一个 VG 的成员列表。pv 的名称存储在每个主机(或者每个节点)的缓存文件中 :/etc/lvm/.cache ,这样后续的命令就可以直接读取该文件,不用浪费时间重新扫描了

b) 可以通过在lmv.conf文件中配置过滤器来控制LVM扫描哪些设备。过滤器由一些列的简单正则表达式组成,表示接受/拒绝某个被发现的块设备。

c) 这个过滤器是由一组阵则表达式组成。这些表达式由你选择的带a(表示接受扫描)或r(表示拒绝扫描)为前缀的字母来界定的。所有没有没有匹配到的设备匀表示按受扫描。需要注意的是,如果你修改了这个扫描器之后,需要重新运行vgscan指令,以重建cache文件。

d) 下面的例子过滤器由一些列的简单正则表达式组成,表示接受/拒绝某个被发现的块设备。

1) 下面表示扫描所有设备。也是默认的选择。

filter = [ "a/.*/" ]

2) 下面的命令用于排除 /dev/cdrom 设备

filter = [ "r|/dev/cdrom|" ]

3) 下面的表达式表示,扫描loop设备,而排除其他所有设备。

filter = [ "a/loop.*/", "r/.*/" ]

4) 下面的表达式表示,扫描所有loop设备和IDE设备,而排除其它所有设备

filter =[ "a|loop.*|", "a|/dev/hd.*|", "r|.*|" ]

24、在线数据重排Online Data Relocation

a) pvmove命令可以在系统运行时进行数据移动。

b) pvmove 命令把要移动的数据分成多个部分,并建立一个临时的镜像以便移动每个小块。由于 pvmove 命令使用mirror ,所以它是和集群无关的,需要排它性的访问

c) 下面的命令移动 /dev/hda12 上所有已经分配的 extens 到卷组中其他可用的 pv 可以看到,pvmove 不一定要给出目的地,它会自动在当前的 VG 中找出有足够空间的其他 pv ,并把数据放到它上面。

pvmove  /dev/hda12

d) 由于 pvmove 命令可能运行很长时间,所以你可能想在后台运行它。由于 pvmove 命令可能运行很长时间,所以你可能想在后台运行它。
pvmove -b /dev/sdc1 /dev/sdf1

e) 下面的命令让 pvmove 5秒钟就报告进度
pvmove -i5 /dev/sdd1

25、在集群的单个节点激活逻辑卷Activating Logical Volumes on Individual Nodes in a Cluster

a) 假如你是在集群的环境中使用 LVM 的,你可能需要在一个节点上排它性的激活逻辑卷。例如 pvmove 命令是不关心集群的,它要求排它性的访问 PV LVM 快照卷也有这个要求

b) 要在一个节点上排它性的激活逻辑卷,你用 lvchange -aey 命令。相反你可以用 lvchange -aly 来激活逻辑卷,但不是排它性的。这样你就可以在其他的节点上也激活该 LV

26、自定义LVM的输出Customized Reporting for LVM

a) 控制的内容

1) 可以对pvs,lvsvgs命令的输出进行简化和自定义。这些命令输出的报告是针对每个对象产生一行记录。每行是包含了与对象属性相关各列的列表。可以选择五种对象进行输出,分别是:物理卷、卷组、逻辑卷、物理卷段和逻辑卷段。

2) 可以对输出报告的以下内容进行控制:

i. 对报告的输出格式进行控制;

ii. 控制LVM对象的列的列表;

iii. 对输出的报告进行排序;

iv. 指定输出的单位;

3)如何控制输出参见 man 手册

27LVM的排错LVM Troubleshooting

a) 故障诊断Troubleshooting Diagnostics

1) 当执行的命令与期望的输出结果不一致的时候,可以用下列这些方法来诊断故障的原因:

i. 用带-v ,-vv,-vvv,-vvvv参数的命令,来获取详细的信息;

ii. 如果出错的问题与逻辑卷的活动有关,那么在配置文件中将日志块部分的activation设置成1,然后执行带-vvvv参数的命令。在完成检测以后,应将上述的设置修改回为0,以免机器因为内存过低而被锁;

iii. 执行lvmdump命令,它可以获得诊断信息;

iv. 执行lvs v ,pvs 或 dmsetup info 信息,以获取额外的系统信息;

v. 检查/etc/lvm/backup下的最新的备份metadata文件和归档文件;

vi. 运行lvm dumpconfig命令,以检查当前的配置文件;

vii. 检查/etc/lvm目录下的.cache缓存文件,以确认设备上有哪些PV

28、显示失效的设备信息Displaying Information on Failed Devices

a) 可以用带-P参数的lvsvgs 命令来显示那些在正常情况无法显示的失效设备的信息。这个参数甚至允许在元数据不是完全一致的情况下进行某些操作。例如卷组 vg 的一个设备失效了

阅读(2876) | 评论(0) | 转发(0) |
0

上一篇:关于LVM(二)

下一篇:Solaris管理(一)

给主人留下些什么吧!~~