IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> LVM与磁盘配额 -> 正文阅读

[系统运维]LVM与磁盘配额

目录

lvm概述

????????lvm机制的基本概念

? ? ? ? ?lvm的管理命令

? ? ? ? ? ? ? ? ? ? ? ? lvm命令

磁盘配额概述

? ? ? ? 实现磁盘限额的条件

? ? ? ? Linux磁盘限额的特点

? ? ? ? ? ? ? ? 配置过程

总结


lvm概述

? ? ? ? logical volume manage 逻辑卷管理

? ? ? ? 能够在保持现有数据不变的情况下动态调整磁盘容量,从而提高磁盘管理的灵活性

/boot 分区用于存放引导文件,不能基于lvm创建

实现过程:将设备指定为物理卷,用一个或者多个物理卷来创建一个卷组,物理卷是用来固定大小的物理区域(Physical Extemt ,PE)来定义的在物理卷上创建的逻辑卷,是由物理区域(pe)组成;可以在逻辑卷上创建文件并挂载。

????????lvm机制的基本概念

PV:物理卷,物理卷是LVM机制的基本存储设备,通常对应为一个普通分区或整个硬盘。创建物理卷时,会在分区或硬盘的头部创建一个保留区块,用于记录LVM的属性,并把存储空间分割成默认大小为4MB的基本单元(Physical Extent,PE),从而构成物理卷。

VG:卷组,由一个或多个物理卷组成一个整体,即称为卷组,在卷组中可以动态地添加或移除物理卷

LV:逻辑卷,对于逻辑卷来说,每一个卷组就是一个整体,从这个整体中“切出”一小块空间,作为用户创建文件系统的基础,这一小块空间就称为逻辑卷。使用mkfs等工具在逻辑卷上创建文件系统

?

? ? ? ? ?lvm的管理命令

功能物理卷管理卷组管理逻辑卷管理
Scan扫描pvscanvgscanlvscan
create建立pvcreatevgcreatelvcreate
display显示pvdisplayvgdisplaylvdisplay
remove删除pvremovevgremovelvremove
extend扩展——vgextendlvextend
reduce减少——vgreducelvreduce

? ? ? ? ? ? ? ? ? ? ? ? lvm命令

pvcreate 设备名1【设备名2....】

vgcreate 卷组名 物理卷名1 物理卷名2

lvcreate -l 容量大小 -n 逻辑卷名 卷组名

lvextend -l +大小 /dev/卷组名/逻辑卷名

实现一下,在虚拟机上做一个lvm

? ? ? ? 首先加硬盘,重启或者不重启echo "- - - "> /sys/class/scsi_host/host0/scan,重新扫描一切

[root@localhost ~]# echo "- - -"> /sys/class/scsi_host/host2/scan 
[root@localhost ~]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   40G  0 disk 
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0   39G  0 part 
  ├─centos-root 253:0    0   37G  0 lvm  /
  └─centos-swap 253:1    0    2G  0 lvm  [SWAP]
sdb               8:16   0   20G  0 disk 
sdc               8:32   0   20G  0 disk 
sr0              11:0    1  4.2G  0 rom  /run/media/root/CentOS 7 x86_64

?此时添加的两块硬盘就显示出来了,接下来,在sdb下做一个分区

[root@localhost ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。

Device does not contain a recognized partition table
使用磁盘标识符 0x20327639 创建新的 DOS 磁盘标签。

命令(输入 m 获取帮助):n //添加新的分区
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
分区号 (1-4,默认 1):1
起始 扇区 (2048-41943039,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):+10G
分区 1 已设置为 Linux 类型,大小设为 10 GiB

命令(输入 m 获取帮助):p

磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x20327639

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048    20973567    10485760   83  Linux

命令(输入 m 获取帮助):t
已选择分区 1   
Hex 代码(输入 L 列出所有代码):8e
已将分区“Linux”的类型更改为“Linux LVM”

命令(输入 m 获取帮助):p

磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x20327639

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048    20973567    10485760   8e  Linux LVM

命令(输入 m 获取帮助):w
The partition table has been altered!

Calling ioctl() to re-read partition table.
正在同步磁盘。

前路铺好,接下来就开始正文吧,创建一个逻辑卷管理

[root@localhost ~]# pvcreate /dev/sdb1 /dev/sdc //创建物理卷
  Physical volume "/dev/sdb1" successfully created.
  Physical volume "/dev/sdc" successfully created. //成功
[root@localhost ~]# vgcreate xiaobin /dev/sdb1 /dev/sdc //创建卷组
  Volume group "xiaobin" successfully created //创建卷组成功
[root@localhost ~]# lvcreate -L 20G -n xiaobinn xiaobin //创建逻辑卷
  Logical volume "xiaobinn" created. //逻辑卷创建成功
[root@localhost ~]# mkfs.xfs /dev/xiaobin/xiaobinn //格式化一下逻辑卷
meta-data=/dev/xiaobin/xiaobinn  isize=512    agcount=4, agsize=1310720 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=5242880, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
[root@localhost ~]# mount /dev/xiaobin/xiaobinn /mnt //将逻辑卷挂在在/mnt下
[root@localhost ~]# df -hT //友好的显示 挂载分区的详细情况
文件系统                     类型      容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root      xfs        37G  4.8G   33G   13% /
devtmpfs                     devtmpfs  897M     0  897M    0% /dev
tmpfs                        tmpfs     912M     0  912M    0% /dev/shm
tmpfs                        tmpfs     912M  9.1M  903M    1% /run
tmpfs                        tmpfs     912M     0  912M    0% /sys/fs/cgroup
/dev/sda1                    xfs      1014M  179M  836M   18% /boot
tmpfs                        tmpfs     183M   40K  183M    1% /run/user/0
/dev/sr0                     iso9660   4.3G  4.3G     0  100% /run/media/root/CentOS 7 x86_64
/dev/mapper/xiaobin-xiaobinn xfs        20G   33M   20G    1% /mnt
//可以看到新建的逻辑卷创建成功并挂载在/mnt 目录下了

????????再给逻辑卷上扩展一些内存,sdb盘还有一些空间,就把剩余空间加到逻辑卷上吧,在sdb再分一个区

?这只是centos 7跟内核不兼容导致的,小问题,让他重新获取一下分区即可

[root@localhost ~]# partx -u /dev/sdb

开始扩容,首先在卷组上添加,然后再在逻辑卷上加

[root@localhost ~]# vgextend xiaobin /dev/sdb2 //卷组名  没有用过的物理盘
  Physical volume "/dev/sdb2" successfully created.
  Volume group "xiaobin" successfully extended
[root@localhost ~]# lvextend -L +10G /dev/xiaobin/xiaobinn 容量 +10G /卷组名/逻辑卷名
  Size of logical volume xiaobin/xiaobinn changed from 20.00 GiB (5120 extents) to 30.00 GiB (7680 extents).逻辑卷从20G 增长到了30G
  Logical volume xiaobin/xiaobinn successfully resized. //成功调整了大小

刷新xfs 文件的系统容量

[root@localhost ~]# xfs_growfs /dev/xiaobin/xiaobinn 
meta-data=/dev/mapper/xiaobin-xiaobinn isize=512    agcount=4, agsize=1310720 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=5242880, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal               bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 5242880 to 7864320

然后再看一些逻辑卷lvdisplay

?以上,就是在虚拟机上操作lvm的全过程

磁盘配额概述

????????当Linux根分区的磁盘空间耗尽时,Linux操作系统将无法再建立新的文件,同时也可能会出现服务程序崩溃、系统无法启动等故障。
????????为了避免在服务器中出现类似磁盘空间不足的问题,可以启用磁盘配额功能,对用户在指定文件系统(分区)中使用的磁盘空间、文件数量进行限制,以防止个别用户恶意或无意间占用大量磁盘空间,从而保持系统存储空间的稳定性和持续可
在Centos系统中,不同的文件系统使用不同磁盘配额配置管理工具。例如,XFS文 件系统通过xfs_quota 工具进行管理;
????????EXT3/4 文件系统通过quota工具进行管理。

? ? ? ? 实现磁盘限额的条件

? ? ? ? ? ? ? ? 需要Linux内核支持;安装xfsprogs和quota软件包

? ? ? ? Linux磁盘限额的特点

? ? ? ? ? ? ? ? 作用范围:针对指定的文件系统(分区)

? ? ? ? ? ? ? ? 限制对象:用户账号、组账号

? ? ? ? ? ? ? ? 限制类型:磁盘容量、文件数量

? ? ? ? ? ? ? ? 限制方法:软限制、硬限制

硬限制:是指对资源节点和数据块的绝对限制,在任何情况下都不允许用户超过这个限制

软限制:是指用户可以在一定时间范围内(默认时间为一周,在/usr/include/sys/fs/ufs_quota.h文件中设置)超过软限制的额度,在硬限制的范围内继续申请资源,同时系统会在用户登录时给出警告信息和仍可继续申请资源剩余时间.如果达到时间期限,用户的硬盘使用仍超过软限制的额度,则系统将不允许用户再申请硬盘资源

? ? ? ? ? ? ? ? 配置过程

1、检查是否已安装xfsprogs和xfs_ quota软件包

[root@localhost ~]# rpm -q xfsprogs quota
xfsprogs-4.5.0-12.el7.x86_64
quota-4.01-14.el7.x86_64

如果没安装

?yum install -y xfsprogs quota

2、以支持配额功能的方式挂载文件系统

[root@localhost ~]# umount /dev/xiaobin/xiaobinn //解挂载

? ? 添加挂载参数"usrquota, grpquota"用于增加对用户、组配额功能的支持

[root@localhost ~]# mount -o usrquota,grpquota /dev/xiaobin/xiaobinn /mnt

???mount -a ?#-a选项,将/etc/ fstab的所有内容重新加载

3、编辑用户和组账号的配额设置

[root@localhost ~]# useradd lisi
[root@localhost ~]# passwd lisi
更改用户 lisi 的密码 。
新的 密码:
无效的密码: 密码少于 8 个字符
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[root@localhost ~]# xfs_quota -x -c 'limit -u bsoft=80M bhard=100M isoft=40 ihard=50 lisi' /mnt
//                 命令字 ? 专家模式 调用命令 ? limit限制 -u指定用户 ?软硬限制 ? ? ?需要限制的用户 ?挂载点

参数

-x表示启动专家模式,在当前模式下允许对配额系统进行修改的所有管理命令可用。
-c表示直接调用管理命令。
-u指定用户账号对象
-g:指定组账号对象
bsoft设置磁盘容量的软限制数值(默认单位为KB)。
bhard设置磁盘容量的硬限制数值(默认单位为KB)。
isoft设置磁盘文件数的软限制数值。
ihard:设置磁盘文件数的硬限制数值。

//仅限制磁盘容量

xfs_ quota -x -c 'limit -u bsoft=80M bhard=100M lisi' /mnt

//仅限制文件数

xfs quota -x -c 'limit -u isoft=4 ihard=5 lisi' /mnt

//查看lisi磁盘:容量限制

xfs_ quota -c'quota -uv lisi' /mnt

//查看lisi文件数限制

xfs quota -c 'quota -i -uv lisi' /mnt

4、验证磁盘配额功能

[root@localhost ~]# chmod 777 /mnt/
[root@localhost ~]# su lisi
[lisi@localhost root]$ dd if=/dev/zero of=/mnt/kgc.txt bs=10M count=12//验证磁盘容量超限
dd: 写入"/mnt/kgc.txt" 出错: 超出磁盘限额
记录了11+0 的读入
记录了10+0 的写出
104857600字节(105 MB)已复制,0.107239 秒,978 MB/秒
[lisi@localhost root]$ cd /mnt
[lisi@localhost mnt]$ ls
kgc.txt
[lisi@localhost mnt]$ touch {1..10}.txt
touch: 无法创建"1.txt": 超出磁盘限额
touch: 无法创建"2.txt": 超出磁盘限额
touch: 无法创建"3.txt": 超出磁盘限额
touch: 无法创建"4.txt": 超出磁盘限额
touch: 无法创建"5.txt": 超出磁盘限额
touch: 无法创建"6.txt": 超出磁盘限额
touch: 无法创建"7.txt": 超出磁盘限额
touch: 无法创建"8.txt": 超出磁盘限额
touch: 无法创建"9.txt": 超出磁盘限额
touch: 无法创建"10.txt": 超出磁盘限额

参数?

if=指定输入设备(或文件)
of=指定输出设备(或文件)
bs=指定读取数据块的大小
count=指定读取数据块的数量
/dev/zero零"设备文件,可以无限的提供空字符。常用来生成-一个特定大小的文件。

5、查看配额使用情况

[root@localhost ~]# xfs_quota -x -c 'report -abih'//查看所有可用分区的磁盘容量配额使用情况
User quota on /mnt (/dev/mapper/xiaobin-xiaobinn)
                        Blocks                            Inodes              
User ID      Used   Soft   Hard Warn/Grace     Used   Soft   Hard Warn/Grace  
---------- --------------------------------- --------------------------------- 
root            0      0      0  00 [------]      3      0      0  00 [------]
lisi         100M    80M   100M  00 [6 days]      1     40     50  00 [------]

Group quota on /mnt (/dev/mapper/xiaobin-xiaobinn)
                        Blocks                            Inodes              
Group ID     Used   Soft   Hard Warn/Grace     Used   Soft   Hard Warn/Grace  
---------- --------------------------------- --------------------------------- 
root            0      0      0  00 [------]      3      0      0  00 [------]
lisi         100M      0      0  00 [------]      1      0      0  00 [------]

查看磁盘配额

report常用选项:

-u对用户查看
-g对组查看
-a查看所有可用分区的配额使用报告
-b查看磁盘容量
-i查看文件数

总结

????????LVM 是 Linux 操作系统中对磁盘分区进行管理的一种逻辑机制,它是建立在硬盘和分区之上、文件系统之下的一个逻辑层,在建立文件系统时屏蔽了下层的磁盘分区布局,因此能够在保持现有数据不变的情况下动态调整磁盘容量,从而增强磁盘管理的灵活性。
????????在安装 CentOS 系统的过程中选择自动分区时,就会默认采用 LVM 分区方案,不需要再进行手动配置。如果有特殊需要,也可以使用安装向导提供的磁盘定制工具调整 LVM 分区。需要注意的是,/boot 分区不能基于 LVM 创建,必须独立出来。

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-09-10 11:14:59  更:2021-09-10 11:15:54 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/30 2:50:30-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码