Linux高级文件系统管理
说明:高级文件系统管理,主要包括磁盘配额、LVM(逻辑卷管理)和RAID(磁盘阵列)。
1)磁盘配额用来限制普通用户在分区中可以使用的容量和创建文件个数;
2)LVM 可以在不关机和不损失数据的情况下修改分区大小;
3)RAID 由几块硬盘或分区组成,拥有数据冗余功能,当其中的某块硬盘或分区损坏时,硬盘或分区中保存的数据不会丟失。
1、磁盘配额(quota)
1.quotacheck命令(扫描文件系统并建立quota记录文件)
命令基本格式:
[root@localhost ~]#quotacheck [-avugfM] 文件系统
注意:使用这些选项时,只需敲下-avug 即可。至于-f和-M选项,是在文件系统以启动quota的情况下,重新扫描文件系统(担心有其他用户在使用 quota 中),需要使用这两个选项。
2.quota命令(查询用户或用户组配额)
[root@localhost ~]#quota [选项] [用户名或组名]
选项:
-u:用户名:查询用户配额;
-g:组名:查询用户组配额;
-v:显示详细信息;
-s:以习惯单位显示容量大小,如M、G;
3.repquota命令(查询文件系统配额)
[root@localhost ~]#repquota [选项] [分区名]
选项:
-a:依据 /etc/mtab文件查询配额。如果不加-a选项,就一定要加分区名;
-u:查询用户配额;
-g:查询用户组配额;
-v:显示详细信息;
-s:以习惯单位显示容量太小;
4.磁盘配额步骤
#rpm –qa | grep quota #查询是否安装quota工具
#fdisk 文件系统 #创建配额分区
#mount –o remount,usrquota,grpquota /disk #开启磁盘配额功能,永久生效修改/etc/fstab
#quotacheck –avug #建立磁盘配额的配置文件
#edquota –u user1 #设置用户配额,-g设置组配额
#edquota –p user1 user2 #配额复制
#edquota –t #修改宽限天数
#quotaon –avug #开启配额
#quotaoff –a #关闭配额
#quota –uvs user1 #查询用户配额,-g查询组配额
#repquota –avugs /disk #查询文件系统配额
#dd if=/dev/zero of=/disk/testfile bs=1M count=60 #测试
#setquota –u 用户名 容量软限制 容量硬限制 个数软限制 个数硬限制 分区名 #非交互式设定磁盘配额
2、LVM(逻辑卷管理机制)
说明:建立 LVM,需要按照以下步骤来进行。
1)把物理硬盘分成分区,当然也可以是整块物理硬盘;
2)把物理分区建立为物理卷(PV),也可以直接把整块硬盘都建立为物理卷,ID为8e。
3)把物理卷整合为卷组(VG)。卷组可以动态地调整大小,可把物理分区加入卷组,也可把物理分区从卷组中删除。
4)把卷组再划分为逻辑卷(LV),逻辑卷也可以调整大小。逻辑卷需要格式化和挂载,才能使用。
1.建立逻辑分区流程
1.1建立物理卷(PV)
[root@localhost ~]# pvcreate 设备文件名 #查看物理卷
[root@localhost ~]# pvscan #查看物理卷
[root@localhost ~]# pvremove /dev/sdb7 #删除物理卷
1.2建立卷组(VG)
[root@localhost ~]# vgcreate -s PE 大小 卷组名 物理卷名
[root@1ocalhost ~]# vgscan #查看卷组
[root@localhost ~]# vgextend scvg /dev/sdb7 #增加卷组容量
[root@localhost ~]# vgreduce scvg /dev/sdb7 #在卷组中删除/dev/sdb7物理卷(不推荐)
[root@localhost ~]# vgremove scvg #删除卷组
1.3建立逻辑卷(LV)
[root@localhost ~]# lvcreate [选项] -n 逻辑卷名 卷组名
选项:
-L容量:指定逻辑卷大小,单位为MB、GB、TB等;
-l个数:按照PE个数指定逻辑卷大小,这个参数需要换算容量,太麻烦;
-n逻辑卷名:指定逻辑卷名;
[root@localhost ~]# lvcreate -L 1.5G -n lamplv scvg
#在scvg卷组中建立一个1.5GB大小的lamplv逻辑卷
注意:建立完逻辑卷,要格式化和挂载之后才能正常使用;如果需要开机后自动挂载,则修改 /etc/fstab 文件。
[root@localhost ~]# mkfs -t ext4 /dev/scvg/lamplv #格式化
[root@localhost ~]# mkdir /disklvm #建立挂载点
[root@localhost ~]# mount /dev/scvg/lamplv /disklvm/ #挂载
[root@localhost ~]# lvresize [选项] 逻辑卷的设备文件名 #调整逻辑卷大小
选项:
-L容量:安装容量调整大小,单位为KB、GB、TB等。使用+増加空间,-代表减少空间。如果直接写容量,则代表设定逻辑卷指定大小;
-l个数:按照PE个数调整逻辑卷大小;
[root@localhost disklvm]# lvresize -L 2.5G /dev/scvg/lamplv
#增加lamplv逻辑卷大小到2. 5GB
命令格式:
[root@localhost ~]# resize2fs [选项] [设备文件名] [调整的大小]
选项:
-f:强制调整;
设备文件名:指定调整哪个分区的大小;
调整的大小:指定把分区调整多大,要加M、G等单位。如果不加大小,则会使用整个分区;
[root@localhost ~]# resize2fs /dev/scvg/lamplv
[root@localhost ~]#lvremove 逻辑卷的设备文件名 #删除逻辑卷
注意:删除 lamplv 逻辑卷,记得在删除时要先卸载。
3、RAID(磁盘阵列)
RAID简介
说明:RAID(Redundant Arrays of Inexpensive Disks,磁盘阵列),译意为廉价的、具有冗余功能的磁盘阵列。原理是通过软件或硬件将多块较小的分区组合成一个容量较大的磁盘组。这个较大的磁盘组读写性能更好,更重要是具有数据冗余功能。
3.1RAID 0
说明:RAID 0也叫Stripe或Striping(带区卷),是RAID级别中存储性能最好的一种。
RAID 0的优点:
1)通过把多块硬盘合并成一块大的逻辑硬盘,实现了数据跨硬盘存储。
2)通过把数据分割成等大小的区块,分别存入不同的硬盘,加快了数据的读写速度。数据的读/写性能是几种RAID中最好的。
3)多块硬盘合并成RAID 0,几块小硬盘组成了更大容量的硬盘,而且没有容量损失,RAID 0的总容量就是几块硬盘的容量之和。
3.2RAID 1
说明:RAID 1也叫 Mirror 或 Mirroring(镜像卷),由两块硬盘组成。两块硬盘的大小最好一致,否则总容量以容量小的那块硬盘为主。
RAID 1的优点:
1)具备了数据冗余功能,任何一块硬盘出现故障,数据都不会丟失。
2)数据的读取性能虽然不如RAID 0,但是比单一硬盘要好,因为数据有两份备份在不同的硬盘上,当多个进程读取同一数据时,RAID会自动分配读取进程。
3.3 mdadm命令(配置RAID)
命令基本格式:
[root@localhost ~]# mdadm [模式] [RAID设备文件名] [选项]
[root@localhost ~]# mdadm -create -auto=yes /dev/md0 -level=5 -raid-devices=3 \
-spare-devices=1 /dev/sdb5 /dev/sdb6 /dev/sdb7 /dev/sdb8
模式:
Assemble:加入一个已存在的阵列;
Build:创建一个没有超级块的阵列;
Create:创建一个阵列,每个设备都具有超级块;
Manage:管理阵列,如添加设备和删除损坏设备;
Misc:允许单独对阵列中的设备进行操作,如停止阵列;
Follow or Monitor:监控RAID状态;
Grow:改变RAID的容量或阵列中的数目;
选项:
-s,-scan:扫描配置文件或/proc/mdstat文件,发现丟失的信息;
-D,-detail:查看磁盘阵列详细信息;
-C,-create:建立新的磁盘阵列,调用 Create模式;
-a,-auto=yes:采用标准格式建立磁阵列;
-n,-raicklevices=数字:使用几块硬盘或分区组成RAID;
-l,-level=级别:创建RAID的级别,可以是0,1,5
-x,-spare-devices=数字:使用几块硬盘或分区组成备份设备;
-a,-add 设备文件名:在已存在的RAID中加入设备;
-r,-remove 设备文件名:在已存在的RAID中移除设备;
-f,-fail设备文件名:把某个组成RAID的设备设置为错误状态;
-S,-stop:停止RAID设备;
-A,-assemble:按照配置文件加载RAID;
3.3.1格式化与挂载RAID
[root@localhost ~]# mkfs -t ext4 /dev/md0 #格式化
[root@localhost ~]# mkdir /raid #建立挂载点
[root@localhost ~]# mount /dev/md0 /raid/ #挂载
[root@localhost ~]# mdadm -S /dev/md0 #启动或停止RAID
[root@localhost ~]# mdadm /dev/md0 –remove /dev/sdb7 #移除错误分区
[root@localhost ~]# mdadm /dev/md0 -add /dev/sdb9 #添加新的备份分区