linux-centos 【parted命令-GPT分区,lvm磁盘管理,xfs——quota磁盘配额管理 】整套操作

本文主要是介绍linux-centos 【parted命令-GPT分区,lvm磁盘管理,xfs——quota磁盘配额管理 】整套操作,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 前言
  • 一 .parted 交互命令的使用
  • 二 .新增硬盘用Parted分区并打上LVM标志
  • 三. 创建pv ,vg , lv ,并设置磁盘配额
    • 3.1格式化分区为xfs文件系统
    • 3.2 挂载xfs系统分区到指定目录,并通过参数uquota,gquota开启文件系统配额。
    • 3.3 xfs_quota 命令的使用
    • 3.4 设置磁盘配额,容量文件限制参数
    • 3.5 切换test1 测试是否磁盘配额成功
  • 四 .为xfs文件系统扩容
    • 4.1 使用命令lvextend为lv 扩容
    • 4.2 使用命令xfs_growfs来对xfs文件系统扩容(这里以block计数)

前言

inux系统一般是作为服务器的,分区采用lvm分区。
通常划分分区工具我们用的比较多是fdisk命令,但是现在由于磁盘越来越廉价,而且磁盘空间越来越大。而fdisk工具他对分区是有大小限制的,它只能划分小于2T的磁盘。现在的磁盘空间已经远远大于2T,有两个方法来解决这个问题:其一是通过卷管理来实现,其二就是通过Parted工具来实现对2T以上磁盘进行分区操作。GPT格式的磁盘相当于原来MBR磁盘中原来保留4个partition table的4*16个字节,只留第一个16个字节,类似于扩展分区,真正的partition table在512字节之后,GPT分区方式没有四个主分区的限制,最多可达到128个主分区。

一 .parted 交互命令的使用

在这里插入图片描述
使用 print 命令可以査看分区表信息,包括硬盘参数、硬盘大小、扇区大小、分区表类型和分区信息。分区信息共有 7 列,分别如下:

Number:分区号。
Start:分区起始位置。这里不再像fdisk那样用柱面表示,使用字节表示更加直观。
End:分区结束位置。
Size:分区大小。
Type:分区类型。
Filesystem:文件系统类型。
标志:分区的标记。

二 .新增硬盘用Parted分区并打上LVM标志

[root@shanan ~]# parted /dev/sdf
GNU Parted 3.1
Using /dev/sdf
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) mklabel gpt                        // 设置分区类型为gpt                                   
Warning: The existing disk label on /dev/sdf will be destroyed and all data on
this disk will be lost. Do you want to continue?
Yes/No? yes                                                               
(parted) print
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdf: 4398GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: Number  Start  End  Size  File system  Name  Flags(parted) mkpart primary 0 2T         //primary指分区类型为主分区,0是分区开始位置  2T是结束位置,或者100% 类型做结束位置也可以
Warning: The resulting partition is not properly aligned for best performance.Ignore/Cancel? ignore                                                     
(parted) mkpart primary 2T 4T                                             
(parted) toggle 1 lvm                       //          标记成lvm                                  
(parted) toggle 2 lvm                        //          标记成lvm                                 
(parted) print                         // 打印当前分区,查看分区设置是否正确                                   
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdf: 4398GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: Number  Start   End     Size    File system  Name     Flags1      17.4kB  2000GB  2000GB               primary  lvm2      2000GB  4398GB  2398GB               primary  lvm(parted) quit                   //   完成后用quit命令退出                                       
Information: You may need to update /etc/fstab.Disk /dev/sdf: 4398.0 GB, 4398046511104 bytes, 8589934592 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: gpt
Disk identifier: D3AD40B6-CC44-4C2E-8398-E1AC9FECFFB5#         Start          End    Size  Type            Name1           34   3906250000    1.8T  Linux LVM       primary2   3906250752   8589932543    2.2T  Linux LVM       primary

三. 创建pv ,vg , lv ,并设置磁盘配额

3.1格式化分区为xfs文件系统

注意:xfs被创建后,其size将无法缩小,但可以通过xfs_growfs来增大

[root@shanan ~]# pvcreate /dev/sdf1 /dev/sdf2Physical volume "/dev/sdf1" successfully created.Physical volume "/dev/sdf2" successfully created.
[root@shanan ~]# vgcreate vg01 /dev/sdf1 /dev/sdf2Volume group "vg01" successfully created
[root@shanan ~]# lvcreate -n lv01 -L 3T vg01Logical volume "lv01" created.[root@shanan ~]# mkfs.xfs -f /dev/vg01/lv01                 // 初始化成xfs文件系统
meta-data=/dev/vg01/lv01         isize=512    agcount=4, agsize=201326592 blks=                       sectsz=512   attr=2, projid32bit=1=                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=805306368, imaxpct=5=                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=393216, version=2=                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

3.2 挂载xfs系统分区到指定目录,并通过参数uquota,gquota开启文件系统配额。

创建用户,挂载lv

[root@shanan /]# useradd test1
[root@shanan /]# passwd test1
Changing password for user test1.
New password: 
BAD PASSWORD: The password fails the dictionary check - it is too simplistic/systematic
Retype new password: 
passwd: all authentication tokens updated successfully.
[root@shanan /]# groupadd zhangsan
[root@shanan /]# mount -o uquota,gquota /dev/vg01/lv01 /mnt  //带参数挂载
[root@shanan /]# chmod 777 /mnt             //为文件夹增加权限,方便测试
[root@shanan /]# mount|grep lv01         //确认参数生效
/dev/mapper/vg01-lv01 on /mnt type xfs (rw,relatime,seclabel,attr2,inode64,usrquota,grpquota)   

3.3 xfs_quota 命令的使用

限制值设定方式(配额方案)
命令格式:xfs_quota  -x  -c  "指令"  [挂载点]
-x :专家模式,后续才能加入-c的指定参数
-c :后面加指令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 设定xfs_quota查询命令
列出目前系统的各的文件系统,以及文件系统的 quota 挂载参数支持       
xfs_quota   -x   -c  "print"     显示状态信息
列出目前 目录 的所有用户的 quota 限制值xfs_quota -x -c "report -ubih"  目录名
列出目前支持的 quota 文件系统是否有起动了 quota 功能?xfs_quota  -x  -c  "state"
project 的限制 (针对目录限制)1,规范目录、项目名称(project)与项目 IDecho "11(ID标识符):/xfsquota/myquota(目录)" >> /etc/projectsecho "myquotaproject(项目名称自取):11(ID标识符)" >> /etc/projid2,初始化专案名称xfs_quota -x -c "project -s myquotaproject(项目名称)"
注:u > 用户userg > 组groupi > inode限制数量b > block限制大小h > 人性化humanp > 对象proj

3.4 设置磁盘配额,容量文件限制参数

设置磁盘容量软限制为80M,硬限制为100M,文件软限制为80个,硬限制为100个

[root@shanan /]# xfs_quota -x -c 'limit  -u bsoft=80M bhard=100M isoft=80  ihard=100 test1 ' /mnt查看磁盘容量对于用户是否受限制
[root@shanan /]# xfs_quota -c 'quota -uv test1 '  /mnt
Disk quotas for User test1 (1000)
Filesystem              Blocks      Quota      Limit  Warn/Time      Mounted on
/dev/mapper/vg01-lv010      81920     102400   00 [--------] /mnt
查看文件数量是否受限制:[root@shanan /]# xfs_quota -c 'quota -i -uv test1 ' /mnt
Disk quotas for User test1 (1000)
Filesystem               Files      Quota      Limit  Warn/Time      Mounted on
/dev/mapper/vg01-lv010         80        100   00 [--------] /mnt

3.5 切换test1 测试是否磁盘配额成功

[test1@shanan ~]$ dd if=/dev/zero of=/mnt/aa bs=1M count=80```//写入80M文件成功
83886080 bytes (84 MB) copied, 0.0428921 s, 2.0 GB/s
[test1@shanan ~]$ dd if=/dev/zero of=/mnt/ab bs=1M count=80     //在另一个文件写入80M失败,只写入了21M ,就提示磁盘空间不足了,测试成功
dd: error writing ‘/mnt/ab’: Disk quota exceeded
21+0 records in   
20+0 records out
20971520 bytes (21 MB) copied, 0.0151652 s, 1.4 GB/s
[test1@shanan ~]$ 
[test1@shanan mnt]$ touch 1
touch: cannot touch ‘1’: Disk quota exceeded  // 为什么文件夹造不了,原来是没有存储空间导致文件也造不了
[test1@shanan mnt]$ id test1
uid=1000(test1) gid=1000(test1) groups=1000(test1)[test1@shanan mnt]$ rm -rf *    // 清除空间
[test1@shanan mnt]$ touch {1..100}.txt      //重新开始创建文件
[test1@shanan mnt]$ ls
100.txt  14.txt  19.txt  23.txt  28.txt  32.txt  37.txt  41.txt  46.txt  50.txt  55.txt  5.txt   64.txt  69.txt  73.txt  78.txt  82.txt  87.txt  91.txt  96.txt
10.txt   15.txt  1.txt   24.txt  29.txt  33.txt  38.txt  42.txt  47.txt  51.txt  56.txt  60.txt  65.txt  6.txt   74.txt  79.txt  83.txt  88.txt  92.txt  97.txt
11.txt   16.txt  20.txt  25.txt  2.txt   34.txt  39.txt  43.txt  48.txt  52.txt  57.txt  61.txt  66.txt  70.txt  75.txt  7.txt   84.txt  89.txt  93.txt  98.txt
12.txt   17.txt  21.txt  26.txt  30.txt  35.txt  3.txt   44.txt  49.txt  53.txt  58.txt  62.txt  67.txt  71.txt  76.txt  80.txt  85.txt  8.txt   94.txt  99.txt
13.txt   18.txt  22.txt  27.txt  31.txt  36.txt  40.txt  45.txt  4.txt   54.txt  59.txt  63.txt  68.txt  72.txt  77.txt  81.txt  86.txt  90.txt  95.txt  9.txt
[test1@shanan mnt]$ rm -rf *
[test1@shanan mnt]$ touch {1..101}.txt   
touch: cannot touch ‘101.txt’: Disk quota exceeded   // 提示第101个文件造不了 ,测试成功
[test1@shanan mnt]$ ls
100.txt  14.txt  19.txt  23.txt  28.txt  32.txt  37.txt  41.txt  46.txt  50.txt  55.txt  5.txt   64.txt  69.txt  73.txt  78.txt  82.txt  87.txt  91.txt  96.txt
10.txt   15.txt  1.txt   24.txt  29.txt  33.txt  38.txt  42.txt  47.txt  51.txt  56.txt  60.txt  65.txt  6.txt   74.txt  79.txt  83.txt  88.txt  92.txt  97.txt
11.txt   16.txt  20.txt  25.txt  2.txt   34.txt  39.txt  43.txt  48.txt  52.txt  57.txt  61.txt  66.txt  70.txt  75.txt  7.txt   84.txt  89.txt  93.txt  98.txt
12.txt   17.txt  21.txt  26.txt  30.txt  35.txt  3.txt   44.txt  49.txt  53.txt  58.txt  62.txt  67.txt  71.txt  76.txt  80.txt  85.txt  8.txt   94.txt  99.txt
13.txt   18.txt  22.txt  27.txt  31.txt  36.txt  40.txt  45.txt  4.txt   54.txt  59.txt  63.txt  68.txt  72.txt  77.txt  81.txt  86.txt  90.txt  95.txt  9.txt
[test1@shanan mnt]$ 

四 .为xfs文件系统扩容

4.1 使用命令lvextend为lv 扩容

先使用命令lvextend将LV扩展为3.5G(初始容量是3G),然后使用命令xfs_growfs来对xfs文件系统扩容(这里以block计数)

  --- Logical volume ---LV Path                /dev/vg01/lv01LV Name                lv01VG Name                vg01LV UUID                YGTMn3-bgqe-jvi2-I7Lb-tvrl-9ihq-fnX9xpLV Write Access        read/writeLV Creation host, time shanan, 2020-06-30 10:39:09 -0400LV Status              available# open                 0LV Size                3.00 TiBCurrent LE             786432Segments               2Allocation             inheritRead ahead sectors     auto- currently set to     8192Block device           253:2
[root@shanan ~]# lvextend -L +0.5T /dev/vg01/lv01Size of logical volume vg01/lv01 changed from 3.00 TiB (786432 extents) to 3.50 TiB (917504 extents).Logical volume vg01/lv01 successfully resized.
[root@shanan ~]# lvdisplay --- Logical volume ---LV Path                /dev/centos/swapLV Name                swapVG Name                centosLV UUID                xqescb-ES3e-vPQs-47Et-HWtu-0ZVH-aM5ChULV Write Access        read/writeLV Creation host, time localhost, 2020-06-18 08:18:05 -0400LV Status              available# open                 2LV Size                3.62 GiBCurrent LE             928Segments               1Allocation             inheritRead ahead sectors     auto- currently set to     8192Block device           253:1--- Logical volume ---LV Path                /dev/centos/homeLV Name                homeVG Name                centosLV UUID                rgILsR-Q4Jl-dm6s-DoeZ-O18c-kKU2-61NOkG--- Logical volume ---LV Path                /dev/vg01/lv01LV Name                lv01VG Name                vg01LV UUID                YGTMn3-bgqe-jvi2-I7Lb-tvrl-9ihq-fnX9xpLV Write Access        read/writeLV Creation host, time shanan, 2020-06-30 10:39:09 -0400LV Status              available# open                 0LV Size                3.50 TiBCurrent LE             917504Segments               2Allocation             inheritRead ahead sectors     auto- currently set to     8192Block device           253:2[root@shanan ~]# mount /dev/vg01/lv01 /mnt
[root@shanan ~]# df -h
Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/centos-root   50G  2.2G   48G   5% /
devtmpfs                 1.7G     0  1.7G   0% /dev
tmpfs                    1.8G     0  1.8G   0% /dev/shm
tmpfs                    1.8G  9.7M  1.8G   1% /run
tmpfs                    1.8G     0  1.8G   0% /sys/fs/cgroup
/dev/sda1               1014M  146M  869M  15% /boot
/dev/mapper/centos-home  246G   33M  246G   1% /home
tmpfs                    351M     0  351M   0% /run/user/0
/dev/mapper/vg01-lv01    3.0T   33M  3.0T   1% /mnt

4.2 使用命令xfs_growfs来对xfs文件系统扩容(这里以block计数)

[root@shanan ~]# xfs_growfs /dev/vg01/lv01 -D 0.5T
meta-data=/dev/mapper/vg01-lv01  isize=512    agcount=4, agsize=201326592 blks=                       sectsz=512   attr=2, projid32bit=1=                       crc=1        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=805306368, imaxpct=5=                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal               bsize=4096   blocks=393216, version=2=                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 805306368 to 939524096
[root@shanan ~]# df -h          //  经查看成功扩容到3.5T
Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/centos-root   50G  2.2G   48G   5% /
devtmpfs                 1.7G     0  1.7G   0% /dev
tmpfs                    1.8G     0  1.8G   0% /dev/shm
tmpfs                    1.8G  9.7M  1.8G   1% /run
tmpfs                    1.8G     0  1.8G   0% /sys/fs/cgroup
/dev/sda1               1014M  146M  869M  15% /boot
/dev/mapper/centos-home  246G   33M  246G   1% /home
tmpfs                    351M     0  351M   0% /run/user/0
/dev/mapper/vg01-lv01    3.5T   33M  3.5T   1% /mnt

这篇关于linux-centos 【parted命令-GPT分区,lvm磁盘管理,xfs——quota磁盘配额管理 】整套操作的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/367238

相关文章

Python正则表达式匹配和替换的操作指南

《Python正则表达式匹配和替换的操作指南》正则表达式是处理文本的强大工具,Python通过re模块提供了完整的正则表达式功能,本文将通过代码示例详细介绍Python中的正则匹配和替换操作,需要的朋... 目录基础语法导入re模块基本元字符常用匹配方法1. re.match() - 从字符串开头匹配2.

Redis 的 SUBSCRIBE命令详解

《Redis的SUBSCRIBE命令详解》Redis的SUBSCRIBE命令用于订阅一个或多个频道,以便接收发送到这些频道的消息,本文给大家介绍Redis的SUBSCRIBE命令,感兴趣的朋友跟随... 目录基本语法工作原理示例消息格式相关命令python 示例Redis 的 SUBSCRIBE 命令用于订

防止Linux rm命令误操作的多场景防护方案与实践

《防止Linuxrm命令误操作的多场景防护方案与实践》在Linux系统中,rm命令是删除文件和目录的高效工具,但一旦误操作,如执行rm-rf/或rm-rf/*,极易导致系统数据灾难,本文针对不同场景... 目录引言理解 rm 命令及误操作风险rm 命令基础常见误操作案例防护方案使用 rm编程 别名及安全删除

Linux下MySQL数据库定时备份脚本与Crontab配置教学

《Linux下MySQL数据库定时备份脚本与Crontab配置教学》在生产环境中,数据库是核心资产之一,定期备份数据库可以有效防止意外数据丢失,本文将分享一份MySQL定时备份脚本,并讲解如何通过cr... 目录备份脚本详解脚本功能说明授权与可执行权限使用 Crontab 定时执行编辑 Crontab添加定

Java使用jar命令配置服务器端口的完整指南

《Java使用jar命令配置服务器端口的完整指南》本文将详细介绍如何使用java-jar命令启动应用,并重点讲解如何配置服务器端口,同时提供一个实用的Web工具来简化这一过程,希望对大家有所帮助... 目录1. Java Jar文件简介1.1 什么是Jar文件1.2 创建可执行Jar文件2. 使用java

Java实现在Word文档中添加文本水印和图片水印的操作指南

《Java实现在Word文档中添加文本水印和图片水印的操作指南》在当今数字时代,文档的自动化处理与安全防护变得尤为重要,无论是为了保护版权、推广品牌,还是为了在文档中加入特定的标识,为Word文档添加... 目录引言Spire.Doc for Java:高效Word文档处理的利器代码实战:使用Java为Wo

SpringBoot 多环境开发实战(从配置、管理与控制)

《SpringBoot多环境开发实战(从配置、管理与控制)》本文详解SpringBoot多环境配置,涵盖单文件YAML、多文件模式、MavenProfile分组及激活策略,通过优先级控制灵活切换环境... 目录一、多环境开发基础(单文件 YAML 版)(一)配置原理与优势(二)实操示例二、多环境开发多文件版

使用docker搭建嵌入式Linux开发环境

《使用docker搭建嵌入式Linux开发环境》本文主要介绍了使用docker搭建嵌入式Linux开发环境,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录1、前言2、安装docker3、编写容器管理脚本4、创建容器1、前言在日常开发全志、rk等不同

sysmain服务可以禁用吗? 电脑sysmain服务关闭后的影响与操作指南

《sysmain服务可以禁用吗?电脑sysmain服务关闭后的影响与操作指南》在Windows系统中,SysMain服务(原名Superfetch)作为一个旨在提升系统性能的关键组件,一直备受用户关... 在使用 Windows 系统时,有时候真有点像在「开盲盒」。全新安装系统后的「默认设置」,往往并不尽编

Redis实现高效内存管理的示例代码

《Redis实现高效内存管理的示例代码》Redis内存管理是其核心功能之一,为了高效地利用内存,Redis采用了多种技术和策略,如优化的数据结构、内存分配策略、内存回收、数据压缩等,下面就来详细的介绍... 目录1. 内存分配策略jemalloc 的使用2. 数据压缩和编码ziplist示例代码3. 优化的