加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

1-18-2 LVM管理和ssm存储管理器使用&磁盘配额 (二)

发布时间:2020-12-13 23:31:55 所属栏目:Linux 来源:网络整理
导读:LVM管理和ssm存储管理器使用磁盘配额? (二) 内容如下: ü? LVM快照 ü? ssm存储管理器的使用 ü? 磁盘配额 ? 第1章 LVM快照 ?????? lvm快照:为了保持系统的一致性,我们先做一个快照冻结当前系统状态,这样快照里面的内容可暂时保持不变,系统本身继续运行

LVM管理和ssm存储管理器使用&磁盘配额? (二)

内容如下:

ü? LVM快照

ü? ssm存储管理器的使用

ü? 磁盘配额

?

第1章 LVM快照

?????? lvm快照:为了保持系统的一致性,我们先做一个快照冻结当前系统状态,这样快照里面的内容可暂时保持不变,系统本身继续运行,通过备份快照来实现不中断服务的备份。

?????? 当创建一个snapshot的时候,仅拷贝原始卷里数据的元数据(meta-data)。创建的时候,并不会有数据的物理拷贝,因此snapshot的创建几乎是实时的,当原始卷上有写操作执行时,snapshot跟踪原始卷块的改变,这个时候原始卷上将要改变的数据在改变之前被拷贝到snapshot预留的空间里,因此这个原理的实现叫做写时复制COW(copy-on-write)。

?????? 在写操作写入块之前,原始数据被移动到 snapshot空间里,这样就保证了所有的数据在snapshot创建时保持一致。而对于snapshot的读操作,如果是没有修改过的块,那么会将读操作直接重定向到原始卷上,如果是已经修改过的块,那么就读取拷贝到snapshot中的块

1.1 首先准备一个LV并挂载

?

?

1.2准备测试文件

?

?

1.3 针对lv1创建一个300M快照

确保VG有空间

?

?

命令:lvcreate -s -n 快照名 -L 快照大小 创建快照的设备

?

?

1、? LVM快照其实也是一个逻辑卷,快照只能对逻辑卷LV进行备份,并且只能对同一个卷组的逻辑卷进行备份,

2、? 在挂载快照时,尽量使用ro的方式进行,这样可以保证不破坏快照卷中的数据

3、? 快照创建完成后是可以直接挂载的,不需要进行文件系统格式化

4、? lvm快照是不会增长和变化的,所以它没有永久存在的必要

?

[[email?protected] data]# lvcreate -s -n datalv_sp -L 300M /dev/datavg/data_lv

? Logical volume "datalv_sp" created.

[[email?protected] data]# lvs

? LV??????? VG???? Attr?????? LSize?? Pool Origin? Data%? Meta%? Move Log Cpy%Sync Convert

? data_lv?? datavg owi-aos--- 600.00m????????????????????????????????????????????????????

? datalv_sp datavg swi-a-s--- 300.00m????? data_lv 0.00

[[email?protected] data]# lvdisplay /dev/datavg/datalv_sp

? --- Logical volume ---

? LV Path??????????????? /dev/datavg/datalv_sp

? LV Name??????????????? datalv_sp

? VG Name??????????????? datavg

? LV UUID??????????????? uRcoSc-FMYR-BRso-A5pf-0FCf-Tdig-QbU5ds

? LV Write Access??????? read/write

? LV Creation host,time xuegod72,2016-12-20 20:46:13 +0800

? LV snapshot status???? active destination for data_lv

? LV Status????????????? available

? # open???????????????? 0

? LV Size??????????????? 600.00 MiB

? Current LE???????????? 150

? COW-table size???????? 300.00 MiB

? COW-table LE?????????? 75

? Allocated to snapshot? 0.01%

? Snapshot chunk size??? 4.00 KiB

? Segments?????????????? 1

? Allocation???????????? inherit

? Read ahead sectors???? auto

? - currently set to???? 8192

? Block device?????????? 253:3

1.4 使用快照

对源LV做了快照后,我们再对这个源LV的文件系统进行一些数据读写操作

[[email?protected] ~]# cp /etc/hosts /datalv/

[[email?protected] datalv]# dd if=/dev/zero of=a.txt bs=1M count=20

恢复快照:

1、直接还原

[[email?protected] ~]umount /datalv

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

umount不成功,判断的两种方法:

[[email?protected] ~]# lsof /lv1

[[email?protected] ~]# fuser -ks /lv1

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

在用lvconvert做快照还原时,一定要把源LV和快照LV都卸载再进行

?[[email?protected] ~]# lvconvert --merge /dev/datavg/data_lv_sp 后面跟的是快照LV

? Merging of volume data_lv_sp started.

? data_lv: Merged: 100.0%

[[email?protected] ~]# lvs

? LV????? VG???? Attr?????? LSize?? Pool Origin Data%? Meta%? Move Log Cpy%Sync Convert

? data_lv datavg -wi-a----- 600.00m???????????????????????????????????????????????????

[[email?protected] ~]# mount /dev/datavg/data_lv /data

[[email?protected] ~]# ls /data

hosts? passwd

2、挂载挂照后,进行需求还原

[[email?protected] ~]# mount –o nouuid,norecovery,ro /dev/datavg/data_lv_snap /data_snap

1.5 快照损坏

超出大小

[[email?protected] data]# dd if=/dev/zero of=aa.txt bs=10M count=1

记录了1+0 的读入

记录了1+0 的写出

10485760字节(10 MB)已复制,0.0391211 秒,268 MB/秒

[[email?protected] data]# lvs

? LV????? VG???? Attr?????? LSize?? Pool Origin? Data%? Meta%? Move Log Cpy%Sync Convert

? data_lv datavg owi-aos--- 600.00m????????????????????????????????????????????????????

? datasp? datavg swi-I-s--- 100.00m????? data_lv 100.00????????????????????????????????

[[email?protected] data]# lvdisplay /dev/datavg/datasp

? --- Logical volume ---

? LV Path??????????????? /dev/datavg/datasp

? LV Name??????????????? datasp

? VG Name??????????????? datavg

? LV UUID??????????????? XKV0RX-AbJH-0AF1-wLtt-lwJl-7RdI-uAsTfM

? LV Write Access??????? read/write

? LV Creation host,2016-12-20 21:11:30 +0800

? LV snapshot status???? INACTIVE destination for data_lv

? LV Status????????????? available

? # open???????????????? 0

? LV Size??????????????? 600.00 MiB

? Current LE???????????? 150

? COW-table size???????? 100.00 MiB

? COW-table LE?????????? 25

? Snapshot chunk size??? 4.00 KiB

? Segments?????????????? 1

? Allocation???????????? inherit

? Read ahead sectors???? auto

? - currently set to???? 8192

? Block device?????????? 253:3

[[email?protected] ~]# lvconvert --merge /dev/datavg/datasp

? Unable to merge invalidated snapshot LV "datasp".

? Unable to merge LV "datasp" into its origin.

[[email?protected] ~]# mount /dev/datavg/datasp /data

mount: /dev/mapper/datavg-datasp:不能读超级块

LV快照的大小最好和源LV保持一致

2借助ssm管理LVM

2.3 操作

安装SSM

[[email?protected] Packages]# yum -y install system-storage-manager

检查关于可用硬驱和LVM卷的信息。显示关于现有磁盘存储设备、存储池、LVM卷和存储快照的信息。

命令:

ssm list 列出信息

2.3.1 查看磁盘信息

设备信息

?

?

存储池信息

?

?

卷的信息

?

?

快照信息

?

?

2.3.2 对VG扩容

?

?

[[email?protected] ~]# ssm add -p datavg /dev/sdb5

File descriptor 7 (/dev/urandom) leaked on lvm invocation. Parent PID 22600: /usr/bin/python

? Volume group "datavg" successfully extended

2.3.3 对LV进行扩容

使用SSM扩容LV(针对创建了快照的lv无效)

通过resize进行扩容

[[email?protected] ~]# lvcreate -n applv -L 500M /dev/datavg

? Logical volume "applv" created.

[[email?protected] ~]# lvs

? LV???????? VG???? Attr?????? LSize?? Pool Origin? Data%? Meta%? Move Log Cpy%Sync Convert

? applv????? datavg -wi-a----- 500.00m?? ??????????????????????????????????????????????????

? data_lv??? datavg owi-a-s--- 600.00m????????????????????????????????????????????????????

? data_lv_sp datavg swi-a-s--- 100.00m????? data_lv 0.00?

[[email?protected] ~]# ssm resize -s +500M /dev/datavg/applv

File descriptor 7 (/dev/urandom) leaked on lvm invocation. Parent PID 22907: /usr/bin/python

? Size of logical volume datavg/applv changed from 500.00 MiB (125 extents) to 1000.00 MiB (250 extents).

? Logical volume applv successfully resized.

[[email?protected] ~]# lvs

? LV???????? VG???? Attr?????? LSize??? Pool Origin? Data%? Meta%? Move Log Cpy%Sync Convert

? applv????? datavg -wi-a----- 1000.00m ????????????????????????????????????????????????????

? data_lv??? datavg owi-a-s---? 600.00m????????????????????????????????????????????????????

? data_lv_sp datavg swi-a-s---? 100.00m????? data_lv 0.00

比较文件系统容量的变化

[[email?protected] ~]# mkfs.xfs /dev/datavg/applv

meta-data=/dev/datavg/applv????? isize=256??? agcount=4,agsize=64000 blks

???????? =?????????????????????? sectsz=512?? attr=2,projid32bit=1

???????? =?????????????????????? crc=0??????? finobt=0

data???? =?????????????????????? bsize=4096?? blocks=256000,imaxpct=25

???????? =?????????????????????? sunit=0????? swidth=0 blks

naming?? =version 2????????????? bsize=4096?? ascii-ci=0 ftype=0

log????? =internal log?????????? bsize=4096?? blocks=853,version=2

???????? =?????????????????????? sectsz=512?? sunit=0 blks,lazy-count=1

realtime =none?????????????????? extsz=4096?? blocks=0,rtextents=0

[[email?protected] ~]# mount /dev/datavg/applv /data

[[email?protected] ~]# df –Th /data

文件系统???????????????? 类型????? 容量? 已用? 可用 已用% 挂载点

/dev/mapper/datavg-applv xfs?????? 997M?? 33M? 965M??? 4% /data

[[email?protected] ~]# lvs

? LV???????? VG???? Attr?????? LSize??? Pool Origin? Data%? Meta%? Move Log Cpy%Sync Convert

? applv????? datavg -wi-ao---- 1000.00m????????????????????????????????????????????????????

? data_lv??? datavg owi-a-s---? 600.00m????????????????????????????????????????????????????

? data_lv_sp datavg swi-a-s---? 100.00m????? data_lv 0.00??????????????????????????????????

[[email?protected] ~]# ssm resize -s +200M /dev/datavg/applv

File descriptor 7 (/dev/urandom) leaked on lvm invocation. Parent PID 23017: /usr/bin/python

? Size of logical volume datavg/applv changed from 1000.00 MiB (250 extents) to 1.17 GiB (300 extents).

? Logical volume applv successfully resized.

meta-data=/dev/mapper/datavg-applv isize=256??? agcount=4,imaxpct=25

???????? =?????????????????????? sunit=0? ????swidth=0 blks

naming?? =version 2????????????? bsize=4096?? ascii-ci=0 ftype=0

log????? =internal?????????????? bsize=4096?? blocks=853,lazy-count=1

realtime =none????????????????? ?extsz=4096?? blocks=0,rtextents=0

data blocks changed from 256000 to 307200

[[email?protected] ~]# df –Th /data

文件系统???????????????? 类型????? 容量? 已用? 可用 已用% 挂载点

/dev/mapper/datavg-applv xfs?????? 1.2G ??33M? 1.2G??? 3% /data

总结:使用ssm存储管理器扩容,不需要再针对文件系统进行扩容

2.3.4 创建一个卷

要求:创建一个名为mail 的存储池,并在其上创建一个名为mail-lv,大小为1G的lvm卷,格式化为xfs文件系统,并将其挂载/mail-lv目录下

硬盘准备:

?

?

1)????? 创建目录

[[email?protected] ~]# mkdir /mail-lv

用的命令如下:

ssm? create ?–s ?lv大小? –n? lv名称? --fstype ?lv文件系统类型 -p 卷组名? 设备 挂载点

自动创建vg,lv,格式化文件系统,自动挂载

?

[[email?protected] ~]# ssm create -s 1G -n mail-lv --fstype xfs -p mail /dev/sdb[6-7] /mail-lv

Not enough space (1024000.0 KB) in the pool ‘mail‘ to create volume! Adjust (N/y/q) ? Y

File descriptor 7 (/dev/urandom) leaked on lvm invocation. Parent PID 23153: /usr/bin/python

??Volume group "mail" successfully created

File descriptor 7 (/dev/urandom) leaked on lvm invocation. Parent PID 23153: /usr/bin/python

? Logical volume "mail-lv" created.

meta-data=/dev/mail/mail-lv????? isize=256??? agcount=4,agsize=63488 blks

???????? =?????????????????????? sectsz=512?? attr=2,projid32bit=1

???????? =?????????????????????? crc=0??????? finobt=0

data???? =?????????????????????? bsize=4096?? blocks=253952,rtextents=0

2)查看挂载状况

[[email?protected] ~]# df -Th

文件系统????????????????? 类型????? 容量? 已用? 可用 已用% 挂载点

/dev/sda3???????????????? xfs?????? 197G? 2.9G? 194G??? 2% /

devtmpfs????????????????? devtmpfs? 467M???? 0? 467M??? 0% /dev

tmpfs???????????????????? tmpfs???? 481M?? 84K? 481M??? 1% /dev/shm

tmpfs???????????????????? tmpfs???? 481M? 7.1M? 474M??? 2% /run

tmpfs???????????????????? tmpfs???? 481M???? 0? 481M??? 0% /sys/fs/cgroup

/dev/sr0????????????????? iso9660?? 3.8G? 3.8G???? 0? 100% /media

/dev/sda1??? ?????????????xfs?????? 297M? 128M? 169M?? 44% /boot

tmpfs???????????????????? tmpfs????? 97M?? 16K?? 97M??? 1% /run/user/42

tmpfs???????????????????? tmpfs????? 97M???? 0?? 97M??? 0% /run/user/0

/dev/mapper/datavg-applv? xfs?????? 1.2G?? 33M? 1.2G??? 3% /data

/dev/mapper/mail-mail--lv xfs?????? 989M?? 33M? 957M??? 4% /mail-lv

[[email?protected] ~]# ssm list

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

Device???????? Free?????? Used????? Total? Pool??? Mount point

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

/dev/fd0????????????????????????? 4.00 KB????????????????????

/dev/sda??????????????????????? 200.00 GB????????? PARTITIONED

/dev/sda1?????????????????????? 300.00 MB????????? /boot?????

/dev/sda2???????????????????????? 2.93 GB????????? SWAP??????

/dev/sda3?????????????????????? 196.78 GB????????? /?????????

/dev/sdb???????????????????????? 20.00 GB????????????????????

/dev/sdb1?? 0.00 KB? 496.00 MB? 500.00 MB? datavg????????????

/dev/sdb2?? 0.00 KB? 496.00 MB? 500.00 MB? datavg????????????

/dev/sdb3?? 0.00 KB? 496.00 MB? 500.00 MB? datavg????????????

/dev/sdb4???????????????????????? 1.00 KB????????????????????

/dev/sdb5? 84.00 MB? 412.00 MB? 500.00 MB? datavg????????????

/dev/sdb6?? 0.00 KB? 496.00 MB? 500.00 MB? mail??????????????

/dev/sdb7?? 0.00 KB? 496.00 MB? 500.00 MB? mail??????????????

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

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

Pool??? Type? Devices????? Free?????? Used????? Total?

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

datavg? lvm?? 4??????? 84.00 MB??? 1.86 GB??? 1.94 GB?

mail??? lvm?? 2???????? 0.00 KB? 992.00 MB? 992.00 MB?

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

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

Volume?????????????? Pool??? Volume size? FS???? FS size?????? Free? Type??? Mount point

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

/dev/datavg/data_lv? datavg??? 600.00 MB? xfs? 596.67 MB? 586.54 MB? linear????????????

/dev/datavg/applv??? datavg????? 1.17 GB? xfs? 996.67 MB? 996.54 MB? linear? /data?????

/dev/mail/mail-lv??? mail????? 992.00 MB? xfs? 988.67 MB? 988.54 MB? linear? /mail-lv??

/dev/sda1????????????????????? 300.00 MB? xfs? 296.67 MB? 183.90 MB? part??? /boot?????

/dev/sda3????????????????????? 196.78 GB? xfs? 196.68 GB? 193.82 GB? part??? /?????????

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

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

Snapshot??????????????? Origin?? Pool??? Volume size???? Size? Type?

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

/dev/datavg/data_lv_sp? data_lv? datavg??? 100.00 MB? 0.00 KB? linear

2.3.5 创建快照

ssm? snapshot快照? -s 大小? -n 名称? ?创建快照的设备

?

?

2.3.6 删除快照

[[email?protected] ~]# ssm remove /dev/mail/mail-lv-sp

Device ‘/dev/mail/mail-lv-sp‘ is mounted on ‘/mail-sp‘ Unmount (N/y/q) ? Y

File descriptor 7 (/dev/urandom) leaked on lvm invocation. Parent PID 23860: /usr/bin/python

Do you really want to remove active logical volume mail-lv-sp? [y/n]: y

? Logical volume "mail-lv-sp" successfully removed

第3章 磁盘配额

q? 磁盘配额:

?????? 利用磁盘配额这种技术,系统管理员可以限制某个用户在某个硬盘分区可使用的大小,和可以创建文件数量的多少;目前Linux系统和Windows系统都支持这种技术

q? 磁盘配额使用条件:

?????? 磁盘配额实施的对象是硬盘分区

?????? 磁盘配额只对一般身份用户有效,对root权限用户无效;

q? 磁盘配额的限制类型

?????? 磁盘的容量:限制用户使用Blocks大小,限制磁盘空间的大小 默认单位是KB

?????? 文件的数量:限制用户能够拥有而文件个数,根据i节点的数量实现对文件数量的限制

q? 磁盘配额的相关名词解释:

?????? 最低限制(软限制,soft):最低限制容量(可以被超过,但会出现警告,超过的部分会保存到宽限时间到期)

?????? 最高限制(硬限制,hard): 绝对禁止用户超过硬限制,当超过时系统会给出警告信息,并且禁止继续写入数据

?????? 宽限时间:当用户使用的空间超过了最低限制但还没到达最高限制时,在这个宽限时间到期前必须将超额的数据降低到最低限制以下(默认为7天),当宽限时间到期,系统将自动清除超出的数据

注意:硬限制的配额值应大于相应的软限制值,否则软限制将失效.

3.1 RHEL7磁盘配额

n? 确认配额命令已经安装

[[email?protected] ~]# dmesg|grep quota

[??? 1.943815] VFS: Disk quotas dquot_6.5.2

[[email?protected] ~]# rpm -q quota

quota-4.01-11.el7.x86_64

[[email?protected] ~]# mount|grep quota

/dev/sda3 on / type xfs (rw,relatime,seclabel,attr2,inode64,noquota)

/dev/sda1 on /boot type xfs (rw,noquota)

/dev/mapper/datavg-applv on /data type xfs (rw,noquota)

l? 首先创建新的测试分区/data

?

?

n? 查看配额是否启动

?

?

n? 启用配额

[[email?protected] ~]# umount /data

[[email?protected] ~]# mount -o uquota,gquota /dev/datavg/data_lv /data

[[email?protected] ~]# mount|grep datavg|grep quota

/dev/mapper/datavg-data_lv on /data type xfs (rw,usrquota,grpquota)

n? 设置开机自动启动配额

?

?

n? 设置目录权限,并创建配额用户

?

?

3.2 实验

3.2.1 查看配额状态

命令:xfs_quota

xfs_quota命令用于管理XFS文件系统的quota硬盘配额,格式为:“quota [参数] 配额 文件系统名称”

参数:

?????? -x?????????? 使用配额模式,只有此模式才能设置配额

?????? -c?????????? 启用命令模式

?????? report????? 显示配额信息

?????? limit????????????? 设置配额??

?????? bsoft 软限制 (硬盘)

?????? bhard 硬配额

?????? -u 用户

?????? -g 组

3.2.2 查看用户和组的配额信息

?

?

3.2.3 设置配额

限制磁盘软限制为10m、磁盘硬限制为50m、文件软限制为3个且文件硬限制为6个

[[email?protected] ~]# xfs_quota -x -c ‘limit bsoft=10M bhard=50M isoft=3 ihard=6 -u zhangsna‘ /data

[[email?protected] ~]# xfs_quota -x -c report /data

User quota on /data (/dev/mapper/datavg-data_lv)

?????????????????????????????? Blocks????????????????????

User ID????????? Used?????? Soft?????? Hard??? Warn/Grace????

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

root??????????? 10248????????? 0????????? 0???? 00 [--------]

zhangsna??????????? 0????? 10240????? 51200???? 00 [--------]

?

Group quota on /data (/dev/mapper/datavg-data_lv)

?????????????????????????????? Blocks????????????????????

Group ID???????? Used?????? Soft?????? Hard??? Warn/Grace????

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

root??????????? 10248??????? ??0????????? 0???? 00 [--------]

3.2.4 验证

?

?

?

?

3.2.5 修改磁盘配额

[[email?protected] ~]# edquota -u zhangsna

Disk quotas for user zhangsna (uid 1001):

? Filesystem?????????????????? blocks?????? soft?????? hard???? inodes???? soft???? hard

? /dev/mapper/datavg-data_lv????? 20480????? 10240????? 51200????????? 6??????? 3??????? 6

[[email?protected] data]$ ls

aa.txt? bb.txt? cc? dd? e? f

[[email?protected] data]$ touch ee

[[email?protected] data]$ touch ff

[[email?protected] data]$ ls|wc -l

8

[[email?protected] data]$ touch gg

touch: 无法创建"gg": 超出磁盘限额

查看所有用户的配额信息:

[[email?protected] ~]# repquota -a

*** Report for user quotas on device /dev/mapper/vg2-applv

Block grace time: 7days; Inode grace time: 7days

??????????????????????? Block limits??????????? ????File limits

User??????????? used??? soft??? hard? grace??? used? soft? hard? grace

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

root????? --?????? 0?????? 0?????? 0????????????? 3???? 0???? 0??????

user1???? +-?? 15360?? 10240?? 51200? 4days?????? 1???? 3???? 7??????

user2???? -+?????? 0?????? 0?????? 0????????????? 6???? 3???? 6? 6days

查看用户自己的配额限制信息:

[[email?protected] lv1]$ quota

Disk quotas for user user2 (uid 1002):

???? Filesystem? blocks?? quota?? limit?? grace?? files?? quota?? limit?? grace

/dev/mapper/vg2-applv

????????????????????? 0?????? 0?????? 0?????????????? 6*????? 3?????? 6?? 6days

用root用户查看单个普通用户的配额信息:

[[email?protected] ~]# quota user1

Disk quotas for user user1 (uid 1001):

???? Filesystem? blocks?? quota?? limit?? grace?? files?? quota?? limit?? grace

/dev/mapper/vg2-applv

????????????????? 15360*? 10240?? 51200?? 4days?????? 1?????? 3?????? 7???????

[[email?protected] ~]# quota user2

Disk quotas for user user2 (uid 1002):

???? Filesystem? blocks?? quota?? limit?? grace?? files?? quota?? limit?? grace

/dev/mapper/vg2-applv

????????????????????? 0?????? 0?????? 0?????????????? 6*????? 3?????? 6?? 6days

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读