实验案例:LVM卷管理及配额设置

实验环境

公司准备在Internet中搭建FTP服务器(CentOS 7.3 系统平台),面向全国各地的员工及部分VIP客户提供资料上传下载的空间。考虑动态扩容的需要,计划增加两块SCSI硬盘并构建LVM逻辑卷(挂载到/date目录下)专门用于存放电子邮件数据,并通过磁盘配额的方式限制用户的电子邮箱空间。

需求描述

采用LVM磁盘管理方案:添加两块SCSI硬盘设备,完成硬盘检测及分区。建立逻辑卷lv01,格式化为XFS文件系统,挂载到/date目录下。

设置磁盘配额,要求用户zhangsan最多只能使用500MB磁盘空间、bdqn组的用户合计最多只能使用4MB磁盘空间。

1.添加两块SCSI硬盘设备

实验案例:LVM卷管理及配额设置
实验案例:LVM卷管理及配额设置

2.建立LVM管理

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

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


命令(输入 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):
将使用默认值 41943039
分区 1 已设置为 Linux 类型,大小设为 20 GiB

命令(输入 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
磁盘标识符:0xb84d8227

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

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

Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@PSD ~]#
[root@PSD ~]# fdisk /dev/sdc
欢迎使用 fdisk (util-linux 2.23.2)。

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


命令(输入 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):
将使用默认值 41943039
分区 1 已设置为 Linux 类型,大小设为 20 GiB

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

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

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

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdc1            2048    41943039    20970496   8e  Linux LVM

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

Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@PSD ~]#
实验案例:LVM卷管理及配额设置

创建逻辑卷

[root@PSD ~]# pvscan
  No matching physical volumes found
[root@PSD ~]# pvcreate /dev/sdb1 /dev/sdc1 //pvcreate命令用于将分区或整个硬盘转换成物理卷
  Physical volume "/dev/sdb1" successfully created.
  Physical volume "/dev/sdc1" successfully created.
[root@PSD ~]# pvscan 
  PV /dev/sdb1                      lvm2 [<20.00 GiB]
  PV /dev/sdc1                      lvm2 [<20.00 GiB]
  Total: 2 [<40.00 GiB] / in use: 0 [0   ] / in no VG: 2 [<40.00 GiB]
[root@PSD ~]# pvdisplay 
  "/dev/sdb1" is a new physical volume of "<20.00 GiB"
  --- NEW Physical volume ---
  PV Name               /dev/sdb1
  VG Name               
  PV Size               <20.00 GiB
  Allocatable           NO
  PE Size               0   
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               4GZIw3-sHH4-1KLo-XMK4-ASAS-dma2-9ywfN1
   
  "/dev/sdc1" is a new physical volume of "<20.00 GiB"
  --- NEW Physical volume ---
  PV Name               /dev/sdc1
  VG Name               
  PV Size               <20.00 GiB
  Allocatable           NO
  PE Size               0   
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               Fdytul-0J2L-BxXD-meWD-7BcR-7GGB-xOCxzn
   
[root@PSD ~]# 

创建卷组

[root@PSD ~]# vgscan
  Reading volume groups from cache.
[root@PSD ~]# vgcreate vg01 /dev/sdb1 /dev/sdc1
  Volume group "vg01" successfully created
[root@PSD ~]# vgscan
  Reading volume groups from cache.
  Found volume group "vg01" using metadata type lvm2
[root@PSD ~]# vgdisplay 
  --- Volume group ---
  VG Name               vg01
  System ID             
  Format                lvm2
  Metadata Areas        2
  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                2
  Act PV                2
  VG Size               39.99 GiB
  PE Size               4.00 MiB
  Total PE              10238
  Alloc PE / Size       0 / 0   
  Free  PE / Size       10238 / 39.99 GiB
  VG UUID               xFQLve-zLJ6-Q07S-pJzq-xg17-5iKp-kZNixu
   
[root@PSD ~]# 

创建逻辑卷

[root@PSD ~]# lvscan 
[root@PSD ~]# lvcreate -L 20G -n lv01 vg01
  Logical volume "lv01" created.
[root@PSD ~]# lvscan 
  ACTIVE            '/dev/vg01/lv01' [20.00 GiB] inherit
[root@PSD ~]# lvdisplay 
  --- Logical volume ---
  LV Path                /dev/vg01/lv01
  LV Name                lv01
  VG Name                vg01
  LV UUID                UFor2F-ajW3-tNOn-aS85-Whes-G4to-pMo9mN
  LV Write Access        read/write
  LV Creation host, time PSD.com, 2022-07-05 16:05:04 +0800
  LV Status              available
  # open                 0
  LV Size                20.00 GiB
  Current LE             5120
  Segments               2
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:0
   
[root@PSD ~]# 

格式化为XFS文件系统

[root@PSD ~]# mkfs -t xfs /dev/vg01/lv01
meta-data=/dev/vg01/lv01         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@PSD ~]# 

挂载到/date目录下

[root@PSD /]# mkdir /date
[root@PSD /]# mount /dev/vg01/lv01 /date
[root@PSD /]# df -hT /date
文件系统              类型  容量  已用  可用 已用% 挂载点
/dev/mapper/vg01-lv01 xfs    20G   33M   20G    1% /date
[root@PSD /]# 

设置磁盘配额,要求用户zhangsan最多只能使用500MB磁盘空间

[root@PSD /]# umount /date  //卸载之前/date目录挂载的分区
[root@PSD /]# mount -o usrquota,grpquota /dev/vg01/lv01 /date
[root@PSD /]# mount
......    //省略部分
/dev/mapper/vg01-lv01 on /date type xfs (rw,relatime,attr2,inode64,usrquota,grpquota)
[root@PSD /]# chmod g+w,o+w /date/  //允许任何用户写入权限

每次开机后自动以支持配额功能的方式自动挂载
[root@PSD /]# vim /etc/fstab  //修改lv01逻辑卷的挂载配置
......    //省略部分
/dev/vg01/lv01  /date   xfs     defaults,usrquota,grpquota 0 0  
[root@PSD /]# useradd zhangsan
[root@PSD /]# passwd zhangsan
更改用户 zhangsan 的密码 。
新的 密码:
无效的密码: 密码未通过字典检查 - 过于简单化/系统化
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[root@PSD /]# 
[root@PSD /]# xfs_quota -x -c 'limit -u bhard=500M bsoft=450M zhangsan' /date/

bdqn组的用户合计最多只能使用4MB磁盘空间

[root@PSD /]# groupadd bdqn
[root@PSD /]# useradd lisi
[root@PSD /]# passwd lisi
更改用户 lisi 的密码 。
新的 密码:
无效的密码: 密码未通过字典检查 - 过于简单化/系统化
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[root@PSD /]# gpasswd -a lisi bdqn
正在将用户“lisi”加入到“bdqn”组中
[root@PSD /]# xfs_quota -x -c 'limit -g bhard=4 bdqn' /date

验证磁盘配额功能

用户zhangsan

[zhangsan@PSD ~]$ cd /date
[zhangsan@PSD date]$ dd if=/dev/zero of=/date/test bs=100M count=4
记录了4+0 的读入
记录了4+0 的写出
419430400字节(419 MB)已复制,2.46541 秒,170 MB/秒
[zhangsan@PSD date]$ dd if=/dev/zero of=/date/test bs=100M count=6
dd: 写入"/date/test" 出错: 超出磁盘限额
记录了6+0 的读入
记录了5+0 的写出
524288000字节(524 MB)已复制,0.93068 秒,563 MB/秒
[zhangsan@PSD date]$ 

文章来源:https://www.cnaaa.net,转载请注明出处:https://www.cnaaa.net/archives/12195

(0)
凯影的头像凯影
上一篇 2024年6月25日 下午2:28
下一篇 2024年6月26日 下午3:02

相关推荐

  • Linux 时间同步 Chrony

    Chrony是NTP(Network Time Protocol,网络时间协议,服务器时间同步的一种协议)的另一种实现,与ntpd不同,它可以更快且更准确地同步系统时钟,最大程度的减少时间和频率误差。 在CentOS6中,默认是使用ntpd来同步时间的,但ntpd同步时间并不理想,有可能需要数小时来同步时间。而且ntp也已经很老了。所以在Centos7中换成…

    2023年1月6日
    1.9K00
  • IP addr添加网络的使用

    IP addr 添加网络的使用 添加IP到网口 查看添加的IP 移除添加的IP 启用网口IP 禁用网口 检测路由 添加路由 移除路由 添加网关 移除网关

    2024年7月5日
    6.6K00
  • nmcli命令详解

    以下是nmcli命令的一些常用选项和用法: 1)修改网卡名称 2)添加网卡 3)启动或停止网卡 4)设置网卡获取IP模式 使用 nmcli 来设置网卡为静态IP ,可以使用以下命令: 使用nmcli命令将网卡eth0模式设置为dhcp

    2023年10月10日
    1.7K00
  • Prometheus监控Linux

    Linux 客户端安装docker  创建node-exporter 启动docker 浏览器验证 http://ip:9100/metrics  prometheus节点操作 配置prometheeus/prometheus.yaml CPU采集node_cpu_seconds_totalnode_cpu_seconds_total{ instance=&…

    2024年1月4日
    1.2K00
  • 解决Composer Installing dependencies from lock file

    1、问题描述 2、原因 这是因为不匹配composer.json要求的版本。提示我的PHP 7版本太高,不符合composer.json需要的版本,但是在PHP 7下应该也是可以运行的,composer可以设置忽略版本匹配。 3、解决方案 composer install –ignore-platform-reqs 或者 composer update -…

    2023年2月14日
    1.9K00

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

在线咨询: QQ交谈

邮件:712342017@qq.com

工作时间:周一至周五,8:30-17:30,节假日休息

关注微信