磁盘配额 Quota
一般用途
- 针对 WWW server ,例如:每个人的网页空间的容量限制!
- 针对 mail server,例如:每个人的邮件空间限制。
- 针对 file server,例如:每个人最大的可用网络硬盘空间
使用限制
- Ext 文件系统家族仅能针对整个 filesystem 进行配额,而 xfs 利用 project quota 来设计不同目录的磁盘配额
- 核心必须支持 quota,CentOS 7.x 的初始核心已经默认支持
- 只对一般身份使用者有效,即对 root 没用(因为 root 不受约束)
- 若启用 SELinux,非所有目录均可设定 quota(一般来说只有 /home)
限制的项目
- 针对用户、群组或个别目录
- 限制 block 和限制 inode:其实就相当于限制大小和文件数量
- 软限制和硬限制:不管是 inode/block ,限制值都有两个,分别是 soft 与 hard。 通常 hard 限制值要比 soft 还要高。
- 硬限制:表示使用者的用量绝对不会超过这个限制值
- 软限制:当超过软限制的话,每次用户登入系统时,系统会主动发出磁盘即将爆满的警告讯息, 且会给予一个宽限时间(grace time)。
- 宽限时间:当你的磁盘用量即将到达 hard 且超过 soft 时,系统会给予警告,但也会给一段时间让用户自行管理磁盘。 一般预设的宽限时间为七天,如果七天内你都不进行任何磁盘管理,那么 soft 限制值会即刻取代 hard 限值来作为 quota 的限制。
示例
开启磁盘 quota 功能
修改 /etc/fstab
即可,在 defaults 的后面加上 usrquota,grpquota:
然后重启检查是否开启:
➜ ~ quotaon /home
quotaon: Enforcing group quota already on /dev/mapper/cl-home
quotaon: Enforcing user quota already on /dev/mapper/cl-home
➜ ~ mount | grep home
/dev/mapper/cl-home on /home type xfs (rw,relatime,attr2,inode64,usrquota,grpquota)
注意到,因为有 SELinux,根目录无法开启 quota 功能:
➜ ~ quotaon /
quotaon: Mountpoint (or device) / not found or has no quota enabled.
不过我们可以通过软连结到 home 目录下可以进行设定。
查看 quota
利用 xfs_quota 查看关于 quota 的一些信息:
xfs_quota -x -c "指令" [挂载点]
选项与参数:
-x :专家模式,后续才能够加入 -c 的指令参数喔!
-c :后面加的就是指令,这个小节我们先来谈谈数据回报的指令
指令:
print :单纯的列出目前主机内的文件系统参数等资料
df :与原本的 df 一样的功能,可以加上 -b (block) -i (inode) -h (加上单位) 等
report :列出目前的 quota 项目,有 -ugr (user/group/project) 及 -bi
state :说明目前支持 quota 的文件系统的信息,有没有起动相关项目等
下面四个操作的对象都是群组用户和项目,使用选项 [-gpu]
disable:暂时取消 quota 的限制,但其实系统还是在计算 quota 时间
enable:与 disable 相反
off:完全关闭 quota 的限制,使用后,只有卸除再重新挂载才能够再次的启动 quota
remove:移出 quota 限制,off 状态才能执行
xfs_quota 里面同样也有 df,只不过这个 df 比较准确:
➜ df -h /home
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/cl-home 20G 50M 20G 1% /home
➜ xfs_quota -x -c "df -h" /home
Filesystem Size Used Avail Use% Pathname
/dev/mapper/cl-home
20.0G 49.0M 20.0G 0% /home
我们利用 report 指令可以列出目前 /home 的所有用户的 quota 限制值,Soft/Hard 为 0 的话则表示没有限制:
➜ xfs_quota -x -c "report -ubih" /home
User quota on /home (/dev/mapper/cl-home)
Blocks Inodes
User ID Used Soft Hard Warn/Grace Used Soft Hard Warn/Grace
---------- --------------------------------- ---------------------------------
root 0 0 0 00 [------] 4 0 0 00 [------]
parallels 16.0M 0 0 00 [------] 1.6k 0 0 00 [------]
利用 state 我们可以查看功能的开启情况:
➜ ~ xfs_quota -x -c "state"
User quota state on /home (/dev/mapper/cl-home)
Accounting: ON
Enforcement: ON
Inode: #894 (2 blocks, 2 extents)
Group quota state on /home (/dev/mapper/cl-home)
Accounting: ON
Enforcement: ON
Inode: #895 (2 blocks, 2 extents)
Project quota state on /home (/dev/mapper/cl-home)
Accounting: OFF
Enforcement: OFF
Inode: #895 (2 blocks, 2 extents)
Blocks grace time: [7 days]
Inodes grace time: [7 days]
Realtime Blocks grace time: [7 days]
设置 quota 限制
如果想要具体限制某个用户/群组,请使用 limit 和 timer 命令。
$ xfs_quota -x -c "limit [-ug] b[soft|hard]=N i[soft|hard]=N name"
$ xfs_quota -x -c "timer [-ug] [-bir] Ndays"
选项与参数:
limit :实际限制的项目,可以针对 user/group 来限制,限制的项目有
bsoft/bhard : block 的 soft/hard 限制值,可以加单位
isoft/ihard : inode 的 soft/hard 限制值
name : 就是用户/群组的名称
timer :用来设定 grace time 的项目喔,也是可以针对 user/group 以及 block/inode 设定
我们利用以下命令可以限制 parallels 用户可存储的文件容量:
➜ ~ xfs_quota -x -c "limit -u bsoft=100M bhard=200M parallels" /home
➜ ~ xfs_quota -x -c "report -ubih" /home
User quota on /home (/dev/mapper/cl-home)
Blocks Inodes
User ID Used Soft Hard Warn/Grace Used Soft Hard Warn/Grace
---------- --------------------------------- ---------------------------------
root 0 0 0 00 [------] 4 0 0 00 [------]
parallels 15.2M 100M 200M 00 [------] 1.6k 0 0 00 [------]
我们随机创建一个100M 大小的文件,创建两次:
➜ ~ time dd if=/dev/zero of=testfile1 bs=4M count=25
25+0 records in
25+0 records out
104857600 bytes (105 MB) copied, 0.0725616 s, 1.4 GB/s
dd if=/dev/zero of=testfile1 bs=4M count=25 0.00s user 0.07s system 96% cpu 0.074 total
➜ ~ time dd if=/dev/zero of=testfile2 bs=4M count=25
dd: error writing ‘testfile2’: Disk quota exceeded
22+0 records in
21+0 records out
88276992 bytes (88 MB) copied, 0.0653141 s, 1.4 GB/s
dd if=/dev/zero of=testfile2 bs=4M count=25 0.00s user 0.07s system 99% cpu 0.068 total
可以发现第二次提示 Disk quota exceeded
,然后第二个文件的大小只有 88M。
设置项目 quota
首先先在 /etc/fstab
里面加入 prjquota 参数:
/dev/mapper/cl-home /home xfs defaults,usrquota,grpquota,prjquota 0 0
重启检查状态即可:
➜ ~ xfs_quota -x -c "state"
......
Project quota state on /home (/dev/mapper/cl-home)
Accounting: ON
Enforcement: ON
Inode: #320 (2 blocks, 2 extents)
......
然后在 /etc/projects
填入 :
,在 /etc/projid
中加入 :
。如果没有这两个文件则重新创建,然后在使用前还需用以下命令初始化:
➜ ~ xfs_quota -x -c "project -s 项目名称"
.......
➜ ~ xfs_quota -x -c "print" /home # 用来检查所有的 project
然后创建一个项目的限制:
xfs_quota -x -c "limit -p bsoft=300M bhard=350M myproject" /home
然后在创建两个文件为:
➜ /home time dd if=/dev/zero of=testfile3 bs=4M count=25
25+0 records in
25+0 records out
104857600 bytes (105 MB) copied, 0.0774492 s, 1.4 GB/s
dd if=/dev/zero of=testfile3 bs=4M count=25 0.00s user 0.09s system 99% cpu 0.095 total
➜ /home time dd if=/dev/zero of=testfile4 bs=4M count=25
dd: error writing ‘testfile4’: No space left on device
13+0 records in
12+0 records out
50528256 bytes (51 MB) copied, 0.120248 s, 420 MB/s
dd if=/dev/zero of=testfile4 bs=4M count=25 0.00s user 0.09s system 74% cpu 0.122 total
因为一开始就已经占用了 200M,发现创建 testfile4 的时候只有 51M 的被创建了。
RAID
磁盘阵列 RAID 的全称为 Redundant Arrays of Inexpensive Disks,直译过来就是 "独立磁盘构成的具有冗余能力的阵列" 。RAID 通过软件或硬件,将多个较小的磁盘整合成为一个较大的磁盘装置,而这个较大的磁盘还可以有这数据保护的作用。RAID 的优点有以下:
- 数据安全与可靠性:当磁盘损毁时,可以即时的恢复。
- 读写性能:例如 RAID 0 可以加强读写性能,增大系统吞吐量
- 容量:可以让多颗磁盘组合起来,故单一文件系统可以有相当大的容量
常见的 RAID 类型
项目 | RAID0 | RAID1 | RAID10 | RAID5 | RAID6 | ||||
---|---|---|---|---|---|---|---|---|---|
最少磁盘数 | 2 | 2 | 4 | 3 | 4 | ||||
最大容错磁盘数 | 无 | n-1 | n/2 | 1 | 2 | ||||
数据安全性 | 完全没有 | 最佳 | 最佳 | 好 | 比 RAID5好 | ||||
理论写入性能 | n | 1 | n/2 |
|
|
|
| |
|
理论读出性能 | n | n | n |
|
|
|
| |
|
可用容量 | n | 1 | n/2 | n-1 | n-2 | ||||
一般应用 | 强调性能但数据不重要的环境 | 资料与备份 | 服务器、云系统常用 | 资料与备份 | 资料与备份 |
RAID 0
RAID-0 (等量模式, stripe),效率最佳。一般使用相同型号与容量的磁盘来组成。
在写入的时候,先分块,然后根据顺序依次写入每个磁盘。如图所示,序号1的写在磁盘1,序号2的写在磁盘2,以此类推,然后我们可以一次读出2个 chunk,提高了吞吐量。但不过,RAID 0 有一个很致命的缺点,只要有任何一颗磁盘损毁,在 RAID 上面的所有数据都会遗失而无法读取。
RAID 1
RAID-1 (映像模式, mirror),完整备份。这种模式也是需要相同的磁盘容量的,最好是一模一样的磁盘。如果是不同容量的磁盘组成 RAID-1 时,那么总容量将以最小的那一颗磁盘为主。这种模式的核心是让同一份数据,完整的保存在两颗磁盘。
RAID 01/10
PS:不要把 RAID 10 读成 RAID 十了,应该是 RAID 一零。
RAID 10 就是先组成 RAID 1 再组成 RAID 0。RAID 01 就是先组成 RAID 0 再组成 RAID 1。
一般来储存设备厂商最推荐的是 RAID 10。任何一颗磁盘损毁, 数据都是从另一颗磁盘直接复制过来重建, 并不像 RAID5/RAID6 必须要整组 RAID 的磁盘共同重建一颗独立的磁盘系统。而且 RAID 1 与 RAID 0 是不需要经过计算的。
RAID 5
RAID 5,是效率和数据备份的均衡考虑。至少需要三块硬盘组成,既具有数据并行存储的能力,也具有防止某块硬盘坏掉数据丢失的能力。
其中,C1 为 数据块1 异或 数据块2
,其它的以此类推,无论那块硬盘丢失,我们都可以还原数据。比如1号盘坏掉,我们可以 数据块2 异或 C1
就得到 数据块1。
Chunk 1: 11001101
Chunk 2: 10010001
C1 : 01011100
== 假设 Chunk 1 损坏 ==
Chunk 2 异或 C1: 11001101 == Chunk 1
这有个问题,RAID5 只能支持一颗磁盘的损毁情况。就是损毁的磁盘数量大于等于两颗时,这整组 RAID 5 的资料就损毁了。所以 RAID 6 就可以保证两颗磁盘的损毁的恢复。
在读写性能的比较上,读取的性能与 RAID-0 有的比。不过写的性能不怎么样,因为要经过需要大量计算。尤其是没有磁盘阵列卡,使用的是软件磁盘阵列,这个计算是需要 CPU 进行的。
热备份 Hot Spare
当磁盘阵列的磁盘损毁时,就得要将坏掉的磁盘拔除,然后换一颗新的磁盘。换成新磁盘并且顺利启动磁盘阵列后, 磁盘阵列就会开始主动的重建 (rebuild) 原本坏掉的那颗磁盘数据到新的磁盘上!然后你磁盘阵列上面的数据就复原了! 这就是磁盘阵列的优点。不过,我们还是得要动手拔插硬盘,除非你的系统有支持热拔插,否则通常得要关机才能这么做。
这就是热备份盘的作用。他是一个与CPU系统电连接的硬盘,当有硬盘故障时,它能替换下系统中的故障盘。而冷备份盘平时与机器不相连接,硬盘故障时需要技术人员手动换下故障盘。
软件 RAID
这里我们实现个 RAID 5,其中四块硬盘构成 RAID 5,一块作为热备份盘
准备工作
由于我使用的是虚拟机,在 Parallel Desktop 里面首先添加块硬盘:
然后,进行分区。这里因为 MBR 分区最多只支持四个主分区(使用拓展分区有问题),所以先把磁盘转换为 gpt 格式:
➜ ~ parted /dev/sdb
......
(parted) mktable gpt
Warning: The existing disk label on /dev/sdb will be destroyed and all data on
this disk will be lost. Do you want to continue?
Yes/No? y # 转换为 gpt 成功
然后,我们再利用 gdisk 进行分区即可。
Disk /dev/sdb: 4194304 sectors, 2.0 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): 0D9DFAE6-1B04-45B6-80CB-514DFD849158
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 4194270
Partitions will be aligned on 2048-sector boundaries
Total free space is 610237 sectors (298.0 MiB)
Number Start (sector) End (sector) Size Code Name
1 2048 718847 350.0 MiB 8300 Linux filesystem
2 718848 1435647 350.0 MiB 8300 Linux filesystem
3 1435648 2152447 350.0 MiB 8300 Linux filesystem
4 2152448 2869247 350.0 MiB 8300 Linux filesystem
5 2869248 3586047 350.0 MiB 8300 Linux filesystem
设置 RAID 5
建立软件 RAID 我们使用的需要使用 mdadm 工具:
➜ ~ mdadm --detail /dev/md0
➜ ~ mdadm --create /dev/md[0-9] --auto=yes --level=[015] --chunk=NK --raid-devices=N --spare-devices=N /dev/sdx /dev/hdx...
选项与参数:
--create :为建立 RAID 的选项;
--auto=yes :决定建立后面接的软件磁盘阵列装置,亦即 /dev/md0, /dev/md1...
--chunk=Nk :决定这个装置的 chunk 大小,也可以当成 stripe 大小,一般是 64K 或 512K。
--raid-devices=N :使用几个磁盘 (partition) 作为磁盘阵列的装置
--spare-devices=N :使用几个磁盘作为备用 (spare) 装置
--level=[015] :设定这组磁盘阵列的等级。支持很多,不过建议只要用 0, 1, 5 即可
--detail :后面所接的那个磁盘阵列装置的详细信息
于是我们可以创建一个 RAID 5 如下:
➜ ~ mdadm --create /dev/md0 --auto=yes --level=5 --chunk=256K --raid-devices=4 --spare-devices=1 /dev/sdb{1,2,3,4,5}
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
然后我们利用 --detail 选项检查信息:
➜ ~ mdadm --detail /dev/md0
/dev/md0: # 设备的名称
......
Raid Level : raid5 # raid 的等级
Array Size : 1072128 (1047.00 MiB 1097.86 MB) # 整个 RAID 的容量
Used Dev Size : 357376 (349.00 MiB 365.95 MB) # 所用的设备的容量
......
如果我们后期想修改 RAID 的话请使用 mdadm 的 manage 命令:
mdadm --manage /dev/md[0-9] [--add 装置] [--remove 装置] [--fail 装置]
选项与参数:
--add :会将后面的装置加入到这个 md 中!
--remove :会将后面的装置由这个 md 中移除
--fail :会将后面的装置设定成为出错的状态
使用 RAID
我们只需要先格式化,然后再挂载即可使用:
➜ ~ mkfs.xfs -f -d su=256k,sw=3 -r extsize=768k /dev/md0
这里,su 代表的是 strip unit 的大小(strip 是 raid 中数据存储的最小单位),sw 代表的是stripe 的宽度(可以理解为一次读取的有效的 stripe),extsize 是数据的宽度等于 su 乘以 sw。
注意,RAID 的重建和备份完全是自动的,无需我们手动操作,和正常磁盘一样使用即可。如果我们需要开机即挂载需要把 RAID 的 UUID 和其它信息加到 /etc/fstab
里面。
卸载软件 RAID
- umount 挂载的目录,删除
/etc/fstab
里面的信息。 - 利用以下命令清除 raid 里面的 metadata:
dd if=/dev/zero of=/dev/md0 bs=1M count=1
( dd 是整个覆盖。如果不清除的话,开机的时候系统还是会重新进行阵列,名称会变成 md127 ) - 停止 raid 即可:
mdadm --stop /dev/md0
逻辑卷管理 LVM
PV, PE, VG, LV
LVM 的作法是将几个文件系统组合成为一块独立的大磁盘 (VG) ,然后将这块大磁盘再经过分区成为可使用分区槽 (LV), 最终就能够挂载使用了。
- 物理卷,Physical Volume (PV):实际的分区需要调整 system ID 为 8e (LVM 的标识符),然后再经过 pvcreate 的指令将他转成 LVM 最底层的物理卷 (PV) ,之后才能够将这些 PV 加以利用。
- 卷组,Volume Group (VG) :VG 就是 LVM 组合起来的大磁盘。他的最大容量和 PE 的大小有关。当使用 32 位的 Linux 系统时,PE 为 4MB, 最大容量为 256GB。
- 物理区域,Physical Extent (PE) :是整个 LVM 最小的储存区块。
- 逻辑卷,Logical Volume (LV) :VG 分区后产生的分区槽就是 LV。设置完成后,利用 mkfs 就可以将 LV 格式化成各种文件系统。
基本流程如下:
在写入的时候,主要有这么两种方式:
- 线性模式 (linear):假如我们有两个硬盘,作为一个 VG,只有一个硬盘用完之后,另外一个硬盘才会被使用到,这也是我们所建议的模式。
- 交错模式 (triped):同时写入两个硬盘,有点类似于 RAID 0,读写的效能会比较好。
LVM 实战
建立 PV
首先,注意使用 gdisk 分区的时候记得将 Hex code or GUID 改为 8e00(如果是 mbr 的话则为 8e)
Command (? for help): n
......
Current type is 'Linux filesystem'
Hex code or GUID (L to show codes, Enter = 8300): 8E00
Changed type of partition to 'Linux LVM'
PV 相关的指令主要有这么几条:
- pvcreate :将实体 partition 建立成为 PV ;
- pvscan :搜寻目前系统里面任何具有 PV 的磁盘;
- pvdisplay :显示指定的 PV 的状态;
- pvremove :将 PV 属性移除,让该 partition 不具有 PV 属性。
下面是配置 PV 的步骤:首先利用 pvcreate 指令建立 PV :
➜ ~ pvcreate /dev/sdb{1,2,3,4}
Physical volume "/dev/sdb1" successfully created.
Physical volume "/dev/sdb2" successfully created.
Physical volume "/dev/sdb3" successfully created.
Physical volume "/dev/sdb4" successfully created.
然后利用 pvscan 检查如下:
➜ ~ pvscan
PV /dev/sdb4 lvm2 [450.00 MiB]
PV /dev/sdb3 lvm2 [450.00 MiB]
PV /dev/sdb1 lvm2 [450.00 MiB]
PV /dev/sdb2 lvm2 [450.00 MiB]
建立 VG
和 VG 相关的命令如下:
- vgcreate :建立 VG
vgcreate [-s size] VG 名称 PV 名
选项与参数:
-s :后面接 PE 的大小 (size) ,单位可以是 m, g, t (大小写均可)
- vgscan :搜寻系统上面是否有 VG 存在
- vgdisplay :显示目前系统上面的 VG 状态
- vgextend :在 VG 内增加额外的 PV
- vgreduce :在 VG 内移除 PV
- vgchange :设定 VG 是否启动 (active)
- vgremove :删除一个 VG
首先我们先创建一个 VG,指定 PE 为 4M:
➜ ~ vgcreate -s 4M mylvm /dev/sdb{1,2,3}
Volume group "mylvm" successfully created
查看创建的 VG 信息:
➜ ~ vgdisplay mylvm
--- Volume group ---
VG Name mylvm
System ID
Format lvm2
Metadata Areas 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 1.31 GiB
PE Size 4.00 MiB
Total PE 336
Alloc PE / Size 0 / 0
Free PE / Size 336 / 1.31 GiB
VG UUID 6puVDP-pT50-LYkJ-c8TF-9rdA-9gi3-V8kOWf
如果想要扩充 lvm 的话,可以使用 vgextend 指令:
➜ ~ vgextend mylvm /dev/sdb4
Volume group "mylvm" successfully extended
➜ ~ vgdisplay mylvm
......
Cur PV 4
Act PV 4
VG Size 1.75 GiB
......
建立 LV
和 LV 相关的命令如下:
- lvcreate :建立 LV
lvcreate [-L N[mgt]] [-n LV 名称] VG 名称
lvcreate [-l N] [-n LV 名称] VG 名称
选项与参数:
-L :后面接容量,容量的单位可以是 M,G,T 等,要注意的是,最小单位为 PE, 因此这个数量必须要是 PE 的倍数,若不相符,系统会自行计算最相近的容量。
-l :后面可以接 PE 的『个数』,而不是数量。若要这么做,得要自行计算 PE 数。
-n :后面接的就是 LV 的名称啦!
- lvscan :查询系统上面的 LV
- lvdisplay :显示系统上面的 LV 状态
- lvextend :在 LV 里面增加容量
- lvreduce :在 LV 里面减少容量
- lvremove :删除一个 LV
- lvresize :对 LV 进行容量大小的调整
首先我们先创建一个 lv:
➜ ~ lvcreate -L 1G -n mylv mylvm
Logical volume "mylv" created.
然后检查我们刚刚创建的 lv,注意在查看信息时,lv 前面需要加上 vg 的名字:
➜ ~ lvdisplay mylvm/mylv
然后我们只需要格式化,然后再挂载即可使用。如果你想要改变 lv 容量,应该按照下面步骤走:
- 确保 VG 有足够的剩余容量
- 利用 lvresize 指令修改 lv 的大小
- 文件系统的容量的改变。注意 EXT 可以放大和缩小,而 XFS 只能够进行放大
如果我们想要在刚刚创建的磁盘加上 500M 容量:
➜ ~ lvresize -L +500M mylvm/mylv
Size of logical volume mylvm/mylv changed from 1.00 GiB (256 extents) to <1.49 GiB (381 extents).
Logical volume mylvm/mylv successfully resized.
这时候检查,文件系统的容量还是 1G:
➜ ~ df -h
Filesystem Size Used Avail Use% Mounted on
......
/dev/mapper/mylvm-mylv 1.0G 33M 1.0G 4% /mylv
此时,对于 xfs 文件系统,我们可以使用 xfs_growfs 命令:
➜ ~ xfs_growfs /mylv
......
data blocks changed from 390144 to 415744
➜ ~ df -H
Filesystem Size Used Avail Use% Mounted on
......
/dev/mapper/mylvm-mylv 1.5G 34M 1.5G 3% /mylv
LVM thin pool
LVM thin pool 的作用就是生成一个指定大小的装置,但实际我们并没有占用那么大的磁盘空间。比如,我们需要有 3 个 10GB 的磁盘来进行某些测试,问题是环境仅有 5GB 的剩余容量,但不过我们发现每个磁盘使用率都没有超过 10%, 也就是总用量目前仅会到 3GB。因此我们可以使用 LVM thin Volume 来解决。
建立一个 thin pool 我们只需要在创建 lv 的时候加上 -T 选项即可:
➜ ~ lvcreate -L 1G -T mylvm/mythinpool
Thin pool volume with chunk size 64.00 KiB can address at most 15.81 TiB of data.
Logical volume "mythinpool" created.
然后再在创建的 thin pool 的基础上,我们把 thin pool 分配一个 10G 的设备:
➜ ~ lvcreate -V 10G -T mylvm/mythinpool -n testpool
Logical volume "testpool" created.
➜ ~ lvs /dev/mylvm
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
mythinpool mylvm twi-aotz-- 1.00g 0.00 11.04
testpool mylvm Vwi-a-tz-- 10.00g mythinpool 0.00
但是注意,真正的可用容量是 thin pool 的容量,如果突破容量则会导致资料丢失
LV 磁盘快照
快照就是将当时的系统信息记录下来,未来若有任何资料更动了,则原始资料会被搬移到快照区,没有被更动的区域则由快照区与文件系统共享。