高级文件系统管理——Linux基本命令(15)

时间:2024-05-21 14:04:13

1.配置配额

1)初始化

分区挂载选项:usrquotagrpquota(用户挂载,组挂载)

高级文件系统管理——Linux基本命令(15)

初始化数据库:quotacheck -cug /home

高级文件系统管理——Linux基本命令(15)

2)执行

开启或者取消配额功能:quotaonquotaoff高级文件系统管理——Linux基本命令(15)

(开启之后发现就无法删除了,被保护了)

 

直接编辑配额:edquota -u/g username(对用户、对组做配额限制)

高级文件系统管理——Linux基本命令(15)

分别对文件的大小和数量进行限制。软限制就是可以允许超过软限制会发出警告,而硬限制不允许超过。因此设置的时候,软应该小于硬。

 

shell中直接编辑:

setquota -u usename 4096 5120 40 50 /foo高级文件系统管理——Linux基本命令(15)

使用edquota -u liubei进去查看,发现就写好了高级文件系统管理——Linux基本命令(15)

 

edquota -p user1 user2  user1的配置复制给user2

 

3)报告配额状态

查看用户:quota username

quota -vu/vg username/groupname 查看用户/查看组

高级文件系统管理——Linux基本命令(15)

repquota -avu  查看所有用户的quota

        -avg  查看所有组的quota

配额概述:repquota /mountpoint

其它工具:warnquota -u 给所有超过限制的用户发邮件

             -g 当组的限制超出时,给组管理员发邮件,管理员需在/etc/quotagrpadmins 中指定groupname: username

高级文件系统管理——Linux基本命令(15)


2.RAID

1)概念

多个磁盘合成一个“阵列”来提供更好的性能、冗余.

提高IO能力:

磁盘并行读写

提高耐用性;

磁盘冗余来实现

级别:多块磁盘组织在一起的工作方式有所不同

RAID实现的方式:

外接式磁盘阵列:通过扩展卡提供适配能力

内接式RAID:主板集成RAID控制器

安装OS前在BIOS里配置

软件RAID:通过OS实现

 

2RAID级别

RAID-0: 条带化 chunk为单位轮流去写

读、写性能提升;

可用空间:N*min(S1,S2,...)

无容错能力

最少磁盘数:2, 2

 

RAID-1:镜像

读性能提升、写性能略有下降;

可用空间:1*min(S1,S2,...)

有冗余能力

最少磁盘数:2, 2N

 

RAID-4

多块数据盘异或运算值,存于专用校验盘

 

RAID-5

读、写性能提升

可用空间:(N-1)*min(S1,S2,...)

有容错能力:允许最多1块磁盘损坏

最少磁盘数:3, 3+

 

RAID-6

读、写性能提升

可用空间:(N-2)*min(S1,S2,...)

有容错能力:允许最多2块磁盘损坏

最少磁盘数:4, 4+

 

RAID-10:结合RAID-1 RAID-0

读、写性能提升

可用空间:N*min(S1,S2,...)/2

有容错能力:每组镜像最多只能坏一块

最少磁盘数:4, 4+

 

RAID-01:结合RAID-0 RAID-1

 


3、软件RAID的实现:madadm

1)概念

mdadm模式化的工具

命令的语法格式:mdadm [mode] <raiddevice> [options] <component-devices>

RAID设备可命名为/dev/md0/dev/md1/dev/md2/dev/md3

模式:

创建:-C

装配: -A

监控: -F

管理:-f, -r, -a

<raiddevice>: /dev/md#

<component-devices>:任意块设备

 

2)创建、查看

-C: 创建模式

mdadm -C /dev/md0 -a yes -l 5 -n 3 -x 1/dev/sd{b,c,d,e}

mdadm -C /dev/md1 -a yes -l 0 -n 2 -c 1M/dev/sdf{1,2}

  -C --create  /dev/mdX 创建 名为mdX raid

  -ayes 当没有所有的/dev/mdX 设备时,自动创建该设备

  -l --level n  所要创建的raid等级可以直接创建10

  -nn  raid的数据盘有多少个成员

  -xn  raid的热备盘有多少个  raid0 没有热备盘,不支持-x

  -c #  指定chunk大小,仅限raid0raid5

  /dev/sdx....  指定raid的成员盘。 可以指定多块盘,也可以指定一块盘上的多块分区。(当指定一块盘上的多块分区时应使用t转化分区格式为raid格式)

高级文件系统管理——Linux基本命令(15)


-D:显示raid的详细信息;

mdadm -D/dev/md#

高级文件系统管理——Linux基本命令(15)

高级文件系统管理——Linux基本命令(15)



也可以查看/proc/mdstat文件,查看raid创建进度

高级文件系统管理——Linux基本命令(15)

 

3)删除,增加,装配

删除:

umount 先卸载

mdadm -D /dev/md2 先查一下,该raid由哪有成员组成。(我们只需要把成员都删掉就行了,不需要把整个raid删掉)

mdadm -S /dev/md2 停止设备

 mdadm --zero-superblock /dev/sdf4  删除sdf4raid信息

 mdadm --zero-superblock /dev/sdf3  删除sdf3raid信息

清空/etc/mdadm.conf当中该raid的信息

mdadm /dev/md0 -f /dev/sdd  模拟将/dev/md0 raid中的sdd坏掉

mdadm /dev/md0 -r /dev/sdd  /dev/md0 raid中的sdd 拔掉

 

增加:

mdadm /dev/md0 -a /dev/sdd  /dev/md0 增加设备sdd 。如数据盘不够,则加为数据盘,如够,加为热备盘

mdadm -G /dev/md0 -n 6 -a /dev/sdh /dev/md0的数据盘设置为6个,并将/dev/sdh加入为数据盘

 

装配(卸载之后重新组装):

手动指定

mdadm -A /dev/md1 /dev/sdb /dev/sdc 装配当没有将md1信息保存至mdadm.conf时,只能手动指定raid成员sdb sdc

 

将信息导入文件即可自动指定

mdadm -Ds /dev/md2 查看信息高级文件系统管理——Linux基本命令(15)

mdadm -D -s > /etc/mdadm.conf  将所有的raid成员信息保存至mdadm.conf文件

mdadm -D -s /dev/md0 >> /etc/mdadm.conf 仅将md0的信处追加保存至mdadm.conf文件

 

mdadm -A /dev/md1  /etc/mdadm.conf中读取成员信息,并仅**md1

mdadm -A -s /etc/mdadm.conf中读取成员信息,并**所有的raid

 


4、逻辑卷管理器(LVM

1)概念

允许对卷进行方便操作的抽象层,包括重新设定文件系统的大小

允许在多个物理设备间重新组织文件系统

将设备指定为物理卷PVPhysical Volumes

用一个或者多个物理卷来创建一个卷组VGVolume Group

物理卷是用固定大小的物理区域(Physical ExtentPE)来定义的

在物理卷上创建的逻辑卷是由物理区域(PE)组成

可以在逻辑卷上创建文件系统,可以在线扩展

高级文件系统管理——Linux基本命令(15)

2)介绍

LVM: Logical Volume Manager Version: 2


dm: device mapper:将一个或多个底层块设备组织成一个逻辑设备的模块

(很灵活,可以来自多个设备不同的块,也可以来自同一设备的跨越的块)

/dev/dm-1 (1000) 0-900   /dev/sda1 (200-1100)

             9011000  /dev/sda2 (301-400)

  或

/dev/dm-1 (1000) 0-900   /dev/sda1 (200-1100)

             9011000  /dev/sda1 (1300-1400)

 

设备名:/dev/dm-#

 

3)创建物理卷

高级文件系统管理——Linux基本命令(15)

先建立分区时应转化成8eLVM格式

 

pvcreate /dev/md0p1  将分区转化成物理卷(可以同时指定多个设备)

高级文件系统管理——Linux基本命令(15)

pvs 简单查看物理卷信息

   pvs/dev/md0p1 只查看md0p1信息

高级文件系统管理——Linux基本命令(15)


pvdisplay 详细查看物理卷信息

   pvdisplay/dev/md0p1 只查看md0p1信息

高级文件系统管理——Linux基本命令(15)

4)创建卷组

vgcreate vgmage26 /dev/md0p1 /dev/md1 创建卷组(指定vgmage26为卷组名,卷组名可以任意起)

   -s8M 指定PE大小,默认4M

 

查看卷组信息

vgs  简单查看

    vgs vgmage26 

vgdisplay  详细查看

    vgdislplay vgmage26

 

vgchange -s 16M  更改PE大小(只能改成比开始定义小的而且被2除没有余数的大小。比如开始定义为16M,则只能改成16M8M4M2M

vgreduce vgmage26 /dev/md1 删除卷组中的某个物理卷

vgextend vgmage26 /dev/md1 将物理卷再加回卷组

vgremove vgmage26 删除卷组

 

5)创建逻辑卷

 

创建逻辑卷

lvcreate -l # -n NAME VolumeGroup -l指定PE -n指定逻辑卷名指定卷组名

高级文件系统管理——Linux基本命令(15)

lvcreate -L #[mMgGtT] -n NAME VolumeGroup  -L指定大小(必须是8的倍数,否则会自动分配更大一些的8的倍数)

高级文件系统管理——Linux基本命令(15)


lvcreate -l 100%FREE -n yourlv testvg (把剩余空间全部给出去)

 

lvs 简单查看

Lvdisplay 详细查看

高级文件系统管理——Linux基本命令(15)

如图,因为刚才指定PE数为10,一个PE8M,所以大小为80M

 

创建之后需要mkfs格式化

高级文件系统管理——Linux基本命令(15)

创建成功

 

删除逻辑卷

lvremove /dev/VG_NAME/LV_NAME

重设文件系统大小

fsadm [options] resize device [new_size[BKMGTEP]]

resize2fs [-f] [-F] [-M] [-P] [-p] device [new_size]

 

 

·PS:当我们挂在逻辑卷时会发现挂载上的名字与挂载时不太一样高级文件系统管理——Linux基本命令(15)

使用ll查询发现它们两个都是软连接。只是挂载的时候系统就使用另一个名字。高级文件系统管理——Linux基本命令(15)

我们可以卸载然后使用dm-0重新挂载,仍然是一样的。高级文件系统管理——Linux基本命令(15)

 


5、扩展逻辑卷

使用LV的好处就是可以在线扩展,下面我们来扩展一下:

 

1.先检查需要扩展的大小,VG是否有足够可用空间

如果不够则扩展VG

pvcreate/dev/md2 先创建一个新pv

vgextendvgmage26 /dev/md2 将其装入vg

 

2.如空间足够则扩展逻辑卷大小

lvextend -L 1G/+1G /dev/vgmage26/lvmage26_01 (增加到1G/增加1G

lvextend -l +100%FREE /dev/vgmage26/lvmage26_01 (将剩下的空间全部加入)

 

3.扩展文件系统大小(格式化)

resize2fs/dev/vgmage26/lvmage26_01 (指定文件系统名字)扩展文件系统

resize2fs/dev/vgmage26/lvmage26_01 1G  只扩展新增加的那1G的文件系统

 

如果是xfs文件系统用xfs_growfs:

xfs_growfs /dev/vg01/lv01

 

 

PS:(在lvextend 时加-r可以使23步一步到位一起做:

lvextend -L +1G -r /dev/vgmage26/lvmage26_01 

先扩展逻辑卷大小后直接增加文件系统大小)

 


6、减小逻辑卷大小(仅支持Ext文件系统)

1.先卸载

umount /mnt/lvmage26_01

2. 扫描检测哪些块没有被用,才可以减那些部分

e2fsck -f/dev/vgmage26/lvmage26_01 

3.先设置文件系统大小为300M(此处的数字不是减小多少而是写多少就设置成多少,因此这个数字只要比原来小就可以代表减小了)

resize2fs/dev/vgmage26/lvmage26_01 300M

4.设置逻辑卷大小为300M

lvreduce -L 300M/dev/vgmage26/lvmage26_01

5. 重新挂载

mount  

 


7、将某块盘从LVM中分离出来

1.先确保数据不在这块PV

   pvs查看

2.如果在这块PV上,则将数据转移到同卷组的其他PV

   pvmove /dev/pv1 /dev/pv2名(可以不指定)

3.pvVg中移出

   vgreduce vg /dev/pv

4.删除该盘的pv属性

  pvremove /dev/pv

 


8、将LVM迁移到其他主机

1.将数据移到目标磁盘对应的PV上。(该磁盘不要有其他与该PV无关的分区)

  pvmove/dev/pv1 /dev/pv2

  vgreduce vg02 /dev/pv(多余)  移动除要移动的PV以外的其他PV

 

2.确保要迁移的VG名与目的系统没有同名的VG

  vgrename vgmage26 vg02  重命名vg

  lvrename /dev/vg02/lvmage26_01 /dev/vg02/lv01  重命名lv(非必须)

 

3.卸载

umount /mnt/lvmage26_01/

 

4.禁用VG上的所有LV

vgchange -an vg02

设置为被保护状态

vgexport vg02

 

5.关机(如果支持热插排,则不用关机),拔硬盘,插到目标主机上。

 

6.先分别扫描一下,找出信息

pvscanvgscanlvscan

 取消被保护状态

vgimport vg02

启用LV 

vgchange -ay vg02

 

7.挂载

mount /dev/vg02/lv01 /mnt/lv02

 


9LVM快照

1)概念

快照是特殊的逻辑卷,它是在生成快照时存在的逻辑卷的准确拷贝。对于需要备份或者复制的现有数据集临时拷贝以及其它操作来说,快照是最合适的选择。

 快照只有在它们和原来的逻辑卷不同时才会消耗空间。

  在生成快照时会分配给它一定的空间,但只有在原来的逻辑卷或者快照有所改变才会使用这些空间。

  当原来的逻辑卷中有所改变时,会将旧的数据复制到快照中。

  快照中只含有原来的逻辑卷中更改的数据或者自生成快照后的快照中更改的数据

  建立快照的卷大小只需要原始逻辑卷的15%20%就够了,也可以使用lvextend放大快照。

 

2)快照的使用

创建快照

lvcreate -L 10M -n lvmage-snap -s /dev/vgmage/lvmage 

   -L指定大小,也可以使用-l指定PE数量 -n生成快照名  -s源逻辑卷名(就是对谁进行快照)

lvcreate -L 10M -n lvmage-snap -s -p r/dev/vgmage/lvmage 创建只读快照

 

挂载快照

mkdir -p/mnt/snap

mount -o ro/dev/vg0/snap-data /mnt/snap

 

删除快照

lvremove /dev/vgmage/lvmage-snap

lvextend -L +300M/300M /dev/vgmage/lvmage-snap  快照扩展

 

使用快照恢复源逻辑卷

umount 源和快照  先卸载源和快照

lvconvert--merge 快照名  将快照恢复到源(该操作成功后会删除快照)

mount   重新将源挂载好

 

3)对有快照的逻辑卷进行扩展

1.umount 源和快照

2.lvchange -an  将源及快照设置为inactive

3.lvextend -L -r 200M 源名字 -r不一定能用)

4.e2fsck -f 扫描

5.resize2fs/xfs_growfs  ...

PS:建议,直接删除快照,可以在线扩展逻辑卷,最后重建快照)



本文转自 Ty_endless 51CTO博客,原文链接:http://blog.51cto.com/tyendless/1960269