DAS

nas 协议  tcp/ip       用nfs,cifs等文件系统去管理  

san 协议   光纤协议

 

IDE

SATA

SCSI 小型计算机接口

ISCSI    36.4 73 146 300

SAS

 

raid     redundant  arrays of  inexpensive disks    

磁盘阵列

raid  0    读写性能佳,坏了其中一块,数据挂掉,可靠性低(stripe条带化),磁盘利用率100%

   A B

   
   1234
   1 2
   3 4
     

raid  1    镜像备份,同一份资料完整的保存在多个磁盘上,写的性能不佳,可靠性高,读的性能还行,磁盘利用率50%

   A B 
     1234
   1 1
   2 2
   3 3 
   4 4

raid 10 先做raid 1 再做raid 0

  disk 0    disk 1  raid 1

     
  disk 2   disk 3  raid 1
  
  disk 4    disk 5  raid 1 

坏掉disk 0后:

    读写性
  另外五块都可以读写
    安全性:
   另五块中,只有坏掉disk 1 整个raid才会挂掉,概率为1/5

raid 01  先做raid 0 再做raid 1
  
  raid 0     raid 0
      
  disk 0    disk 3  
   
  disk 1    disk 4  
   
  disk 2    disk 5 

坏掉disk 0后:

 读写性:
     还有三块可以读写
 安全性:
  另外五块中3,4,5坏掉任意一块,则整个raid挂掉。概率为3/5

raid 10和  raid01就安全可靠性上来说还是raid10好点,读写性能一样,磁盘利用率一样

 

raid  5

 由多块磁盘做raid 5,磁盘利用率为n-1/n,  另块放校验数据,允许坏一块盘,数据可以利用校验值来恢复

   disk 1  disk 2  disk 3

   数据  数据  校验

   检验  数据  数据
   数据  检验  数据

raid 5   和  raid 10

3d + 1  2d+2d

1,利用率

3/4  1/2

2,安全性
坏掉一块的情况,raid5就不能再坏了
       raid10只有当和坏掉的那块同为raid1组里的时候,才会整个坏掉,概率1/3

   

3,读写性能
raid 5对大文件读写好点
raid 10对小文件读写好点

 

=================================================================

软raid

--raid 的创建
用分区或者 虚拟机加磁盘来做

这里我选择使用虚拟机加磁盘来做,这里一共加了8个磁盘,每个1G大小,其实就是类似在虚拟机配置文件.vmx里加了下面一段

或者使用vmware-vdiskmanager命令来创建

scsi0:2.present = "TRUE"

scsi0:2.fileName = "D-1.vmdk"
scsi0:3.present = "TRUE"
scsi0:3.fileName = "D-2.vmdk"
scsi0:4.present = "TRUE"
scsi0:4.fileName = "D-3.vmdk"
scsi0:5.present = "TRUE"
scsi0:5.fileName = "D-4.vmdk"
scsi0:6.present = "TRUE"
scsi0:6.fileName = "D-5.vmdk"
scsi0:8.present = "TRUE"
scsi0:8.fileName = "D-7.vmdk"
scsi0:9.present = "TRUE"
scsi0:9.fileName = "D-8.vmdk"

scsi0:2.redo = ""

scsi0:3.redo = ""
scsi0:4.redo = ""
scsi0:5.redo = ""
scsi0:6.redo = ""
scsi0:8.redo = ""
scsi0:9.redo = ""

 

      mdadm  - manage MD devices aka Linux Software

       RAID

创建raid 0 
[root@raid ~]# mdadm --create /dev/md0 --level=0 --raid-devices=2 /dev/sdb /dev/sdc
mdadm: array /dev/md0 started.

创建过程中可以用另一终端cat /proc/mdstat  去查看正在创建的状态信息

[root@raid ~]# mkfs.ext3 /dev/md0

[root@raid ~]# mount /dev/md0 /mnt/

[root@raid ~]# df -h |grep mnt

/dev/md0              2.0G   36M  1.9G   2% /mnt

[root@raid ~]# cat /proc/mdstat

Personalities : [raid0]
md0 : active raid0 sdc[1] sdb[0]
      2097024 blocks 64k chunks
     
unused devices: <none>

创建raid 1
[root@raid ~]# mdadm --create /dev/md1 --level=1 --raid-devices=2 /dev/sdd /dev/sde
mdadm: array /dev/md1 started.

[root@raid ~]# mkfs.ext3 /dev/md1

[root@raid ~]# mount /dev/md1 /media/

[root@raid ~]# df -h |grep md

/dev/md0              2.0G   36M  1.9G   2% /mnt
/dev/md1             1008M   18M  940M   2% /media

对上面的raid0和raid1的一个写性能使用dd命令进行测试,下面命令可以多测几次
[root@raid ~]# dd if=/dev/zero of=/mnt/aaa bs=1M count=1000
[root@raid ~]# dd if=/dev/zero of=/media/bbb bs=1M count=1000
--测试的结果是raid0写性能比raid1要好

创建raid5
[root@raid ~]# mdadm --create /dev/md5 --level=5 --raid-devices=4 /dev/sdf /dev/sdg /dev/sdh /dev/sdi
mdadm: array /dev/md5 started.

[root@raid ~]# watch cat /proc/mdstat  --这里监控一下它们盘之间的数据同步;等它们同步完毕再进行下面的格式化

[root@raid ~]# mkfs.ext3 /dev/md5

[root@raid ~]# mount /dev/md5 /misc/

[root@raid ~]# df -h |grep md
/dev/md0              2.0G   36M  1.9G   2% /mnt --raid 0利用率为100%
/dev/md1             1008M   18M  940M   2% /media --raid 1利用率为50%
/dev/md5              3.0G   69M  2.8G   3% /misc --raid 5利用率为n-1/n,在这里就是3/4

[root@raid ~]# cat /proc/mdstat
Personalities : [raid0] [raid1] [raid6] [raid5] [raid4]
md5 : active raid5 sdi[3] sdh[2] sdg[1] sdf[0]
      3145536 blocks level 5, 64k chunk, algorithm 2 [4/4] [UUUU]
     
md1 : active raid1 sde[1] sdd[0]
      1048512 blocks [2/2] [UU]
     
md0 : active raid0 sdc[1] sdb[0]
      2097024 blocks 64k chunks
     
unused devices: <none>

===========================================================

--raid的启停

[root@raid ~]# vim /etc/mdadm.conf --手动编写raid的配置文件,此文件不存在,要手动建立,并写上

DEVICES /dev/sdb /dev/sdc /dev/sdd /dev/sde /dev/sdf /dev/
sdg /dev/sdh /dev/sdi --把做了raid的分区写上来

[root@raid ~]# mdadm --detail --scan >> /etc/mdadm.conf

    --扫描当前raid的信息,并追加到配置文件里

# cat /etc/mdadm.conf

DEVICES /dev/sdb /dev/sdc /dev/sdd /dev/sde /dev/sdf /dev/sdg /dev/sdh /dev/sdi
ARRAY /dev/md0 level=raid0 num-devices=2 metadata=0.90 UUID=84209045:9c03c4cb:7f755b8d:cc471294
ARRAY /dev/md1 level=raid1 num-devices=2 metadata=0.90 UUID=4e62fdc1:6c2a652f:fb72c05d:356d5c76
ARRAY /dev/md5 level=raid5 num-devices=4 metadata=0.90 UUID=c3c1f37b:9fba8a89:a711dc6c:01a5ddb3

--如果你不做上面这步,重启系统,raid会不能自动被认到。所以做完的raid都需要扫描并存放信息

停止raid设备

先umount 已经挂载的raid设备

[root@raid ~]# umount /mnt/
[root@raid ~]# umount /media/
[root@raid ~]# umount /misc/

然后使用命令停止

[root@raid ~]# mdadm --stop /dev/md0
mdadm: stopped /dev/md0
[root@raid ~]# mdadm --stop /dev/md1
mdadm: stopped /dev/md1
[root@raid ~]# mdadm --stop /dev/md5
mdadm: stopped /dev/md5

 

启动raid设备  

1,有/etc/mdadm.conf配置文件的情况下
[root@raid ~]# mdadm -A /dev/md0
mdadm: /dev/md0 has been started with 2 drives.
[root@raid ~]# mdadm -A /dev/md1
mdadm: /dev/md1 has been started with 2 drives.
[root@raid ~]# mdadm -A /dev/md5
mdadm: /dev/md5 has been started with 4 drives.

[root@raid ~]# cat /proc/mdstat  --再查看,就有信息了,并且raid里的数据还在

 

2,没有配置文件的情况下,手动把设备名写上就可以了

[root@raid ~]# mdadm -A /dev/md0  /dev/sd{b,c}
mdadm: /dev/md0 has been started with 2 drives.

[root@raid ~]# mdadm -A /dev/md1  /dev/sd{d,e}

mdadm: /dev/md1 has been started with 2 drives.

[root@raid ~]# mdadm -A /dev/md5  /dev/sd{f,g,h,i}

mdadm: /dev/md5 has been started with 4 drives.

3,如果连设备名都不知道,可以去查看每个设备的raid信息,使用uuid把raid设备重新组合
[root@raid ~]# mdadm -E /dev/sdf
/dev/sdf:
          Magic : a92b4efc
        Version : 0.90.00
           UUID : b091e16b:f8df9671:465755db:c640595b --UUID,同一个raid里每个磁盘查看的都是这个值
  Creation Time : Sat May  7 11:23:52 2011
     Raid Level : raid5
  Used Dev Size : 1048512 (1024.11 MiB 1073.68 MB)
     Array Size : 3145536 (3.00 GiB 3.22 GB)
   Raid Devices : 4
  Total Devices : 4
Preferred Minor : 5

    Update Time : Sat May  7 11:42:09 2011

          State : clean
 Active Devices : 4
Working Devices : 4
 Failed Devices : 0
  Spare Devices : 0
       Checksum : facef367 - correct
         Events : 2

         Layout : left-symmetric

     Chunk Size : 64K

      Number   Major   Minor   RaidDevice State

this     0       8       80        0      active sync   /dev/sdf

   0     0       8       80        0      active sync   /dev/sdf

   1     1       8       96        1      active sync   /dev/sdg
   2     2       8      112        2      active sync   /dev/sdh
   3     3       8      128        3      active sync   /dev/sdi

[root@raid ~]# mdadm -A --uuid=b091e16b:f8df9671:465755db:c640595b /dev/md5 
mdadm: /dev/md5 has been started with 4 drives.

--上面组合后的名字可以随意写,甚至是不存在的一个名字,相当于是重新组合

 

==================================================================

软raid的热插拔实验

模拟raid中其中一块盘故障

[root@raid ~]# mdadm /dev/md5 --fail /dev/sdf
mdadm: set /dev/sdf faulty in /dev/md5
--使用--fail对raid中其中一块盘打一个fail标记

[root@raid ~]# cat /proc/mdstat

Personalities : [raid0] [raid1] [raid6] [raid5] [raid4]
md5 : active raid5 sdf[4](F) sdi[3] sdh[2] sdg[1]--有个F标记
      3145536 blocks level 5, 64k chunk, algorithm 2 [4/3] [_UUU]
     
md1 : active raid1 sdd[0] sde[1]
      1048512 blocks [2/2] [UU]
     
md0 : active raid0 sdb[0] sdc[1]
      2097024 blocks 64k chunks

[root@raid ~]# mdadm /dev/md5 --remove /dev/sdf

mdadm: hot removed /dev/sdf
--热移除故障磁盘

[root@raid ~]# mdadm /dev/md5 --add /dev/sdj  --增加一块新的磁盘上去

mdadm: re-added /dev/sdj
--刚增加完后,机器负载较高,因为现在它在对新盘同步数据

[root@raid ~]# cat /proc/mdstat

Personalities : [raid0] [raid1] [raid6] [raid5] [raid4]
md5 : active raid5 sdj[4] sdi[3] sdh[2] sdg[1]
      3145536 blocks level 5, 64k chunk, algorithm 2 [4/3] [_UUU]
      [=====>...............]  recovery = 29.2% (307840/1048512) finish=0.0min speed=153920K/sec --这里可以看到在同步中
     
md1 : active raid1 sdd[0] sde[1]
      1048512 blocks [2/2] [UU]
     
md0 : active raid0 sdb[0] sdc[1]
      2097024 blocks 64k chunks
     
--同步完成后,查看数据还在;有兴趣的课后可以去尝试使用动态数据来实验(也就是类似正在跑起来的数据库的数据)

---------------------

---------------------

把raid设备挂载到/mnt目录

# mysql_install_db --datadir=/mnt --user=mysql
# mysqld_safe --datadir=/mnt/ --user=mysql &

然后使用mysql进入,插入一些数据,再进行热插拔实验,在这个过程中都可以进入大批量insert操作,不受影响(只受负载影响,因为同步raid数据时也要占用负载)

 

================================================

删除raid

1,umount

 

2,

[root@raid ~]# mdadm /dev/md5 --fail /dev/sdf --remove /dev/sdf
mdadm: set /dev/sdf faulty in /dev/md5
mdadm: hot removed /dev/sdf
[root@raid ~]# mdadm /dev/md5 --fail /dev/sdg --remove /dev/sdg
mdadm: set /dev/sdg faulty in /dev/md5
mdadm: hot removed /dev/sdg
[root@raid ~]# mdadm /dev/md5 --fail /dev/sdh --remove /dev/sdh
mdadm: set /dev/sdh faulty in /dev/md5
mdadm: hot removed /dev/sdh
[root@raid ~]# mdadm /dev/md5 --fail /dev/sdi --remove /dev/sdi
mdadm: set /dev/sdi faulty in /dev/md5
mdadm: hot removed /dev/sdi

3,
[root@raid ~]# mdadm --stop /dev/md5
mdadm: stopped /dev/md5

4,
直接用fdisk删除分区
或者
用下面命令擦除superblock
[root@raid ~]# mdadm --misc --zero-superblock /dev/sdf
[root@raid ~]# mdadm --misc --zero-superblock /dev/sdg
[root@raid ~]# mdadm --misc --zero-superblock /dev/sdh
[root@raid ~]# mdadm --misc --zero-superblock /dev/sdi

=================================================================

练习:

把/dev/sd{f,g,h,i}创建成raid 10

 

# mdadm --create /dev/md10 --level=10 --raid-devices=4 /dev/sd{f,g,h,i}

 

===============================

 

LVM 逻辑卷管理 logical volumne manager

 

--参考下面的文档

# ls /share/soft/pdf/redhat_5_zh/Red_Hat_Enterprise_Linux-5-Cluster_Logical_Volume_Manager-zh-CN.pdf

 

pv    physical volumn(物理卷) 把实际分区或设备划为pv ,  pv是lvm物理标记

vg    volumn group (卷组) 把pv组合成vg,相当于组合成lvm能够使用一个大硬盘

pe    physical extend (物理扩展)vg组成的最小单位,默认是4M,vg最大支持65535个pe,相当于是block

lv   logical  volumn (逻辑卷)  实际可以使用的lvm的设备,相当是把vg划分成可用的分区

block devices --> PV -->  VG   --> LV   --> 格式化  --->挂载使用

 

1,划分pv

[root@raid ~]# pvcreate /dev/md0
  Physical volume "/dev/md0" successfully created
[root@raid ~]# pvcreate /dev/md1
  Physical volume "/dev/md1" successfully created
[root@raid ~]# pvcreate /dev/md10
  Physical volume "/dev/md10" successfully created

查看相关信息的命令 pvscan  pvdisplay  pvs

删除pv的命令  pvremove /dev/md10

[root@raid ~]# pv

pvchange   pvcreate   pvmove     pvresize   pvscan
pvck       pvdisplay  pvremove   pvs        pv.sh

2,划分vg

[root@raid ~]# vgcreate vg01 /dev/md10

  Volume group "vg01" successfully created
[root@raid ~]# vgextend vg01 /dev/md0
  Volume group "vg01" successfully extended
[root@raid ~]# vgextend vg01 /dev/md1
  Volume group "vg01" successfully extended

--补充:vgcreate -s  指定PE的大小

查看相关信息的命令vgscan vgdisplay vgs

# vgs

  VG   #PV #LV #SN Attr   VSize VFree
  vg01   3   0   0 wz--n- 4.99G 4.99G

[root@raid ~]# vgreduce vg01 /dev/md0
  Removed "/dev/md0" from volume group "vg01"
 --vgreduce跟vgextend是相反的,是在vg里移除pv

移除vg的命令是vgremove,它是和vgcreate相反

 

3,把vg划分为逻辑卷(线性卷linear)

[root@raid ~]# lvcreate -L 1000M -n lv01 vg01 --L指定大小,n指定lv的名字

  Logical volume "lv01" created

[root@raid ~]# lvcreate -l 250 -n lv02 vg01 --l指定PE的个数,n指定lv的名字

  Logical volume "lv02" created

 

[root@raid ~]# ls /dev/vg01/ -l

lrwxrwxrwx 1 root root 21 May  7 14:14 lv01 -> /dev/mapper/vg01-lv01
lrwxrwxrwx 1 root root 21 May  7 14:15 lv02 -> /dev/mapper/vg01-lv02

[root@raid ~]# ls /dev/mapper/ -l

brw-rw---- 1 root disk 253,  0 May  7 14:14 vg01-lv01
brw-rw---- 1 root disk 253,  1 May  7 14:15 vg01-lv02

[root@raid ~]# mkfs.ext3  /dev/vg01/lv01

[root@raid ~]# mkfs.ext3  /dev/vg01/lv02

[root@raid ~]# mount /dev/vg01/lv01 /mnt/

[root@raid ~]# mount /dev/vg01/lv02 /media/

[root@raid ~]# df -h | tail -4
/dev/mapper/vg01-lv01
                      985M   18M  918M   2% /mnt
/dev/mapper/vg01-lv02
                      985M   18M  918M   2% /media

[root@raid ~]# echo '12345' > /mnt/1

[root@raid ~]# echo '678910' > /media/2 

查看的相关参数为lvscan lvdisplay

[root@raid ~]# lvscan
  ACTIVE            '/dev/vg01/lv01' [1000.00 MB] inherit
  ACTIVE            '/dev/vg01/lv02' [1000.00 MB] inherit

移除lv使用lvremove

完全删除lvm,就要先lvremove,再vgremove,最后pvremove

 

=============================================================

[root@raid ~]# vgs
  VG   #PV #LV #SN Attr   VSize VFree
  vg01   3   2   0 wz--n- 4.99G 3.04G

[root@raid ~]# lvcreate -l 50%VG -n lv03 vg01  --创建lv03,大小为vg01的一半

[root@raid ~]# lvcreate -l 100%FREE -n lv04 vg01 --把剩下的所有空间都分配给新创建的lv04

[root@raid ~]# lvs  --使用lvs验证

  LV   VG   Attr   LSize    Origin Snap%  Move Log Copy%  Convert
  lv01 vg01 -wi-ao 1000.00M                                     
  lv02 vg01 -wi-ao 1000.00M                                     
  lv03 vg01 -wi-a-    2.49G                                     
  lv04 vg01 -wi-a-  556.00M 

=================================================
使用lvremove把上面的四个卷给移除,再来创建条状卷

当您创建条状逻辑卷时,请使用 lvcreate 命令的 -i 参数指定条带的数目。这取决于逻辑卷要进行条带

化的物理卷数目。条带的数目不能超过卷组中物理卷的数目(除非使用 --alloc anywhere 参数)

如果构成逻辑卷的基本物理设备的大小不同,条状卷的最大容量由最小的基本设备决定。例如,在有两
个分支条状卷中,其容量最大为较小设备的两倍。在有三个分支的条状卷中,其容量是最小设备的三倍

--创建条带卷

# lvcreate -L 1500M -i3 -I64 -n stripe_lv_01 vg01
  Logical volume "stripe_lv_01" created

===========================================
镜像卷

当您创建一个镜像卷时,您可使用 lvcreate 命令的 -m 参数来指定数据的备份数目。指定 -m1 生成一

个镜像,也就是生成两个文件系统副本:一个线性逻辑卷加上一个副本。同样的,指定 -m2 会生成两
个镜像,也就是生成三个文件系统副本。

--创建一个镜像卷
[root@raid ~]# lvcreate -L 1000M -m1 -n mirror_lv_02 vg01

============================================================

--------------------------------

lv的扩容

1,先考虑vg是否还有空间去扩容,如果没有,那么要先扩容vg,使用vgextend

2,
[root@raid ~]# lvextend -L 1.5g /dev/vg01/lv01
  Extending logical volume lv01 to 1.50 GB
  Logical volume lv01 successfully resized

下面两种写法也可以
[root@dns ~]# lvextend -L +500M /dev/vg01/lv01
[root@dns ~]# lvextend -l +125 /dev/vg01/lv01

[root@raid ~]# df -h

/dev/mapper/vg01-lv01
                      985M   18M  918M   2% /mnt--查看已经挂载的大小,没有变化

[root@raid ~]# resize2fs /dev/vg01/lv01 --再使用这个命令去在线同步
resize2fs 1.39 (29-May-2006)
Filesystem at /dev/vg01/lv01 is mounted on /mnt; on-line resizing required
Performing an on-line resize of /dev/vg01/lv01 to 393216 (4k) blocks.
The filesystem on /dev/vg01/lv01 is now 393216 blocks long.

[root@raid ~]# df -h
/dev/mapper/vg01-lv01
                      1.5G   18M  1.4G   2% /mnt  --再次查看,已经挂载的lv扩大了,并且数据没有影响

========================================

lv的缩小

 做缩小操作之前,都要去验证查看一下数据的大小,缩小时不要缩到比已经存在的数据量还要小(数据库内的表空间缩小也是一样要先查看已有数据大小)

 

[root@raid ~]# resize2fs /dev/vg01/lv01 1g --这样去缩小的话,报错已经mount了

resize2fs 1.39 (29-May-2006)
Filesystem at /dev/vg01/lv01 is mounted on /mnt; on-line resizing required
On-line shrinking from 393216 to 262144 not supported.

[root@raid ~]# umount /mnt/

[root@raid ~]# resize2fs /dev/vg01/lv01 1g --umount后再使用resize2fs命令,要求先去e2fsck检测
resize2fs 1.39 (29-May-2006)
Please run 'e2fsck -f /dev/vg01/lv01' first.
 

[root@raid ~]# e2fsck -f /dev/vg01/lv01

e2fsck 1.39 (29-May-2006)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/vg01/lv01: 12/192000 files (8.3% non-contiguous), 10517/393216 blocks

[root@raid ~]# resize2fs /dev/vg01/lv01 1g --检测后再使用resize2fs命令缩小,并挂载查看大小是否缩小
resize2fs 1.39 (29-May-2006)
Resizing the filesystem on /dev/vg01/lv01 to 262144 (4k) blocks.
The filesystem on /dev/vg01/lv01 is now 262144 blocks long.

[root@raid ~]# mount /dev/vg01/lv01 /mnt/

[root@raid ~]# df -h

/dev/mapper/vg01-lv02
                      985M   18M  918M   2% /media --缩小了

[root@raid ~]# lvscan
  ACTIVE            '/dev/vg01/lv01' [1.50 GB] inherit --但这里查看的还是1.5g
  ACTIVE            '/dev/vg01/lv02' [1000.00 MB] inherit

[root@raid ~]# lvreduce -L 1g /dev/vg01/lv01  --所以lvreduce也要做
  WARNING: Reducing active logical volume to 1.00 GB
  THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce lv01? [y/n]: y
  Reducing logical volume lv01 to 1.00 GB
  Logical volume lv01 successfully resized

[root@raid ~]# lvscan

  ACTIVE            '/dev/vg01/lv01' [1.00 GB] inherit --OK
  ACTIVE            '/dev/vg01/lv02' [1000.00 MB] inherit

 

============================

 

lvm 快照功能  snapshot

1,快照创建的速度非常快,不需要停止生产环境
2,快照的大小是存储差异数据,或是快照时间点的状态,不需要和lv同大小
3,它可以用于一些特殊的情况,比如数据库备份,或者批量复制虚拟机等

 

实验:

[root@raid ~]# dd if=/dev/zero of=/media/10m bs=1M count=10

[root@raid ~]# dd if=/dev/zero of=/media/20m bs=1M count=20

[root@raid ~]# dd if=/dev/zero of=/media/30m bs=1M count=30

[root@raid ~]# ls /media/ -l
total 61532
-rw-r--r-- 1 root root 10485760 May  7 15:18 10m
-rw-r--r-- 1 root root 20971520 May  7 15:18 20m
-rw-r--r-- 1 root root 31457280 May  7 15:18 30m
drwx------ 2 root root    16384 May  7 14:17 lost+found

[root@raid ~]# lvcreate -s -L 100m -n snap01 /dev/vg01/lv02   --L参数指定的大小不是快照大小,它类似于一个快照存活的时间(由源的改变来定义存活时间的长短。源增加多少,这个100M‘时间‘就会被使用多少,源删除,这个100M时间只会被增加一点点,因为删除只记录它的一个innode失效。但注意,快照的内容不会跟着改变。
  Logical volume "snap01" created

[root@raid ~]# ls /dev/vg01/snap01
/dev/vg01/snap01

[root@raid ~]# mkdir /snap

[root@raid ~]# mount /dev/vg01/snap01 /snap/

[root@raid ~]# ls /snap/ --快照的内容
10m  20m  30m  lost+found

[root@raid ~]# dd if=/dev/zero of=/media/50m bs=1M count=50
--在源目录加一个50M的文件

[root@raid ~]# ls /snap/ --快照的内容不会跟着变

10m  20m  30m  lost+found

[root@raid ~]# lvs
  LV     VG   Attr   LSize    Origin Snap%  Move Log Copy%  Convert
  lv01   vg01 -wi-ao    1.00G                                     
  lv02   vg01 owi-ao 1000.00M                                     
  snap01 vg01 swi-ao  100.00M lv02    50.48    --但是这个snap%会发现由几乎为0变化到50%

 

--下面再可以继续做试验:

1,在源删除一个文件,再使用lvs查看  %snap只会增加一点点
2,当%snap用完了100%,则快照失效。umount和mount快照都会出问题
3, 快照的内容不会跟着源改变

 

[root@raid ~]# lvremove /dev/vg01/snap01  --快照的移除

Do you really want to remove active logical volume snap01? [y/n]: y
  Logical volume "snap01" successfully removed