1、 设定文件系统配额
在内核中执行:
• 以文件系统即分区为单位启用
• 对不同组或者用户的策略不同
根据块或者节点进行限制:
• 执行软限制(soft limit),限时限制
• 硬限制(hard limit)
初始化:
• 分区挂载选项,针对用户或组:usrquota 、grpquota
• 初始化数据库,也即是创建用户或组文件系统配额数据库:quotacheck
执行:
• 开启或者取消配额:quotaon 、quotaoff
• 直接编辑配额:edquota username
在shell中直接编辑用户的配额设置:
• setquota usename 4096 5120 40 50 /foo
定义原始标准用户,即是把user1用户的配额复制给user2用户:
• edquota -p user1 user2
报告:
• 用户调查:quota
#quota wang 显示wang用户的配额及使用情况
• 配额概述:repquota
#repquota /home 查看目录/home的配额情况
1)、对家目录/home实施文件系统配额设置(所有用户都使用家目录)-centos7
在/etc/fstab中配置挂载分区/dev/sda8:
UUID="843ba30b-23ff-4d30-a0a0-f8eb2de12c8c" /mnt/home ext4 defaults 0 0
/home目录下的文件迁移:
[root@localhost ~]# cd /home
[root@localhost home]# mv * /mnt/home
[root@localhost ~]# umount /mnt/home
在/etc/fstab中修改配置挂载分区/dev/sda8:
UUID="843ba30b-23ff-4d30-a0a0-f8eb2de12c8c" /home ext4 defaults,usrquota,grpquota 0 0
[root@centos7 ~]# mount -o remount /home
[root@centos7 home]# quotacheck -cug /home 必须在当前文件系统目录中进行操作
[root@centos7 home]# quotaon -p /home
group quota on /home (/dev/sda7) is off
user quota on /home (/dev/sda7) is off
[root@centos7 home]# quotaon /home
[root@centos7 home]# quotaon -p /home
group quota on /home (/dev/sda7) is on
user quota on /home (/dev/sda7) is on
[root@centos7 home]# edquota wang 为用户wang设置配额
[root@centos7 home]# edquota -p wang mage 把用户wang的配额设置复制给用户mage
[root@centos7 home]# setquota hacker 80000 100000 0 0 /home 为用户hacker设置配额
[root@centos7 ~]# su – wang
Last login: Wed Aug 24 23:06:19 EDT 2016 on pts/0
[wang@centos7 ~]$ du -sh .
56K .
[wang@centos7 ~]$ dd if=/dev/zero of=fi bs=1M count=80
sda7: warning, user block quota exceeded.
80+0 records in
80+0 records out
83886080 bytes (84 MB) copied, 0.260812 s, 322 MB/s
[wang@centos7 ~]$ ll -h
total 80M
-rw-rw-r–. 1 wang wang 80M Aug 29 06:35 fi
[root@centos7 ~]# edquota wang
Disk quotas for user wang (uid 1034):
Filesystem blocks soft hard inodes soft hard
/dev/sda7 81976 80000 100000 15 0 0
[wang@centos7 ~]$ su root
[root@centos7 wang]# chown root fi
[root@centos7 wang]# ll -h
total 81920
-rw-rw-r–. 1 root wang 80M Aug 29 06:35 fi
[root@centos7 wang]# edquota wang
Disk quotas for user wang (uid 1034):
Filesystem blocks soft hard inodes soft hard
/dev/sda7 56 80000 100000 14 0 0
用户wang的家目录下,只有属主是wang用户的文件,才是属于wang用户的文件
2)、对家目录/home实施文件系统配额设置(所有用户都使用家目录)-centos6
[root@localhost home]# quotacheck -c -u -g /home
quotacheck: Cannot create new quotafile /home/aquota.user.new: Permission denied
quotacheck: Cannot initialize IO on new quotafile: Permission denied
quotacheck: Cannot create new quotafile /home/aquota.group.new: Permission denied
quotacheck: Cannot initialize IO on new quotafile: Permission denied
[root@localhost mnt]# getenforce
Enforcing
[root@localhost mnt]# setenforce
usage: setenforce [ Enforcing | Permissive | 1 | 0 ]
[root@localhost home]# setenforce 0
[root@localhost home]# getenforce
Permissive
然后就可以继续按步骤进行配额设置
2、设定和管理软RAID 设备(实际工作中使用的是硬RAID)
RAID:多个磁盘合成一个“阵列”来提供更好的性能、冗余,或者两者都提供
提IO能力:磁盘并行读写
提高耐用性;通过磁盘冗余来实现
级别:多块磁盘组织在一起的工作方式有所不同
1)、RAID 实现的方式:
外接式磁盘阵列通过扩展卡提供适配能力
内接式RAID 由主板集成RAID 控制器,安装OS前在BIOS里进行配置
2)、RAID 级别
RAID-0:
读、写性能提升
可用空间: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-50
RAID7:可以理解为一个独立存储计算机,自身带有操作系统和管理工具,可以独立运行,理论上性能最高的RAID
JBOD:Just a Bunch Of Disks
功能:将多块磁盘的空间合并一个大的连续空间使用
可用空间:sum(S1,S2,…)
常用级别:RAID-0, RAID-1, RAID-5, RAID-10,RAID-50, JBOD
3)、软RAID可以用磁盘做,也可以用分区做,只不过用分区做时要改分区的id为fd
Mdadm命令为软RAID提供管理界面
RAID设备可命名为/dev/md0 、/dev/md1 、/dev/md2、/dev/md3 等等
命令的语法格式:mdadm [mode] <raiddevice> [options] <component-devices>
支持的RAID 级别:LINEAR, RAID0, RAID1, RAID4,RAID5, RAID6, RAID10
mode模式:
创建:-C
重新激活: -A
管理:-f, -r, -a
<raiddevice>:/dev/md#
<component-devices>:成员设备可以是任意块设备
其中-C创建模式下包括选项:
-n #:使用#个块设备来创建此RAID
-l #:指明要创建的RAID 的级别
-a {yes|no}:自动创建目标RAID 设备的设备文件
-c CHUNK_SIZE:指明块大小
-x #:指明空闲盘的个数,当有raid磁盘损坏时空闲盘自动进行顶替
其中-D显示raid 的详细信息
#mdadm -D /dev/md#
其中管理模式:
-f: 标记指定磁盘为损坏状态
-a: 新添磁盘
-r: 移除磁盘
观察md 的状态:
#mdadm -D /dev/md0
#cat /proc/mdstat
#watch -n 1 cat /proc/mdstat
模拟磁盘故障:
#mdadm /dev/md0 -f /dev/sda1
移除磁盘:
#mdadm /dev/md0 –r /dev/sda1
新增添磁盘成员:
#mdadm –G /dev/md0 -n4 -a /dev/sdf1 其中-n4意思是原先有三个成员,现在加一个/dev/sdf1成为4个成员
生成配置文件:# mdadm –Ds >> /etc/mdadm.conf
#umount /dev/md0
停止raid设备(前提就是先取消挂载):#mdadm –S /dev/md0
重新激活(重新激活raid的前提是上面生成的配置文件/etc/mdadm.conf,若果没有此配置文件,停止raid后不能通过命令重新激活):# mdadm –As /dev/md0
停止或者重新激活raid设备,可以使用此命令查看状态#mdadm –D /dev/md0
删除raid 信息:mdadm –zero-superblock /dev/sdb1
4)、软RAID 配置实例
#fdisk /dev/sdb 创建/dev/sdb1分区,大小10G
#dd if=/dev/sdb of=/dev/sdc bs=1 count=512
#dd if=/dev/sdb of=/dev/sdd bs=1 count=512
#dd if=/dev/sdb of=/dev/sde bs=1 count=512
#partx –a /dev/sdc
#partx –a /dev/sdd
#partx –a /dev/sde
使用mdadm 创建并定义RAID 设备
#mdadm -C /dev/md0 -a yes -l 5 -n 3 -x 1 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1
# mdadm -C /dev/md0 -a yes -l 5 -n 3 -x 1 /dev/sd{b,c,d,e}1
用文件系统对每个RAID 设备进行格式化
#mke2fs -j /dev/md0
#vim /etc/fatab
/dev/md0 /mnt/raid ext4 defaults 0 0
#mount -a
#mdadm –detail/-D /dev/md0
测试:
#mdadm /dev/md0 –f /dev/sdb1 模拟磁盘/dev/sdb1故障
#mdadm /dev/md0 –r /dev/sda1 删除磁盘/dev/sdb1
#mdadm /dev/md0 -a /dev/sda1 增加磁盘/dev/sdb1
生成配置文件:#mdadm –Ds >> /etc/mdadm.conf
#umount /dev/md0
停止raid设备(前提就是先取消挂载):#mdadm –S /dev/md0
重新激活(重新激活raid的前提是上面生成的配置文件/etc/mdadm.conf,若果没有此配置文件,停止raid后不能通过下面命令重新激活):# mdadm –As /dev/md0
停止或者重新激活raid设备,可以使用此命令查看状态#mdadm –D /dev/md0
清除raid:
#umount /dev/md0
#mdadm –S /dev/md0
使用#fdisk /dev/sd#删除raid成员分区
但#blkid中相关信息还有保留,可以使用如下命令删除相应的raid 信息#mdadm –zero-superblock/dev/sdb#
然后修改挂载配置文件#vim /etc/fstab
最后#rm -f /etc/mdadm.conf
3、逻辑卷
1)、允许在多个物理设备间重新组织文件系统形成物理卷组
将设备指定为物理卷,用一个或者多个物理卷来创建一个卷组
物理卷是用固定大小的物理区域(Physical Extent,PE )来定义的(即是组成卷组的物理卷大小固定相同)
在物理卷上创建的逻辑卷是由物理区域(PE )组成,可以在逻辑卷上创建文件系统
2)、pv-物理卷管理工具
显示pv信息:
#pvs 简要pv 信息显示
#pvdisplay 详细显示pv信息
创建pv:
#pvcreate /dev/DEVICE
#pvcreate /dev/sd{a7,b,c} 创建物理卷时,对于分区要把其的id设置为8e
3)、vg-物理卷组管理工具
显示卷组:
使用vgs和vgdisplay命令查看vg信息
创建卷组也即为卷组分配物理卷:
#vgcreate [-s #[kKmMgGtTpPeE]] VolumeGroupName PhysicalDevicePath [PhysicalDevicePath…]
#vgcreate vg0 /dev/sd{a7,b,c}
管理卷组:
#vgextend VolumeGroupName PhysicalDevicePath [PhysicalDevicePath…]
#pvcreate /dev/sdd
#vgextend vg0 /dev/sdd
#vgreduce VolumeGroupName PhysicalDevicePath [PhysicalDevicePath…]
删除卷组中物理卷/dev/sdb的步骤:
先做#pvmove /dev/sdb 先搬家,即是把物理卷/dev/sdb中被逻辑卷占用的空间搬到到其他的pv物理卷中,防止因为删除物理卷/dev/sdb而破坏依赖于此物理卷的逻辑卷
再做#vgreduce vg0 /dev/sdb 从vg0中把物理卷/dev/sdb移除,但是/dev/sdb仍然是物理卷
最后#pvremove /dev/sdb 删除物理卷/dev/sdb,/dev/sdb不再是物理卷
也可以删除卷组vg0,其实卷组相当于磁盘,所以删除卷组要先删除上面的分区即逻辑卷,删除卷组的命令是#vgremove vg0
但是删除卷组后,组成卷组的pv还是存在的,只是不再属于任何卷组,可以使用如下命令删除各个pv
#pvremove /dev/sdb
4)、lv-逻辑卷管理工具
显示逻辑卷:
使用命令lvs和lvdisplay查看lv信息
创建逻辑卷:
#lvcreate -L #[mMgGtT] -n NAME VolumeGroup
#lvcreate -L 10G -n lv0 vg0
挂载逻辑卷:
其中逻辑卷/dev/vg0/lv0同于/dev/mapper/vg0-lv0是软链接,其都指向/dev/dm-0
#mkfs.ext4 /dev/vg0/lv0
#mkdir /mnt/lv0
#mount /dev/vg0/lv0 /mnt/lv0或者写入挂载配置文件/etc/fstab中
#mount -a
删除逻辑卷:
#umount /dev/vg0/lv0
#lvremove /dev/vg0/lv0 删除逻辑卷后,逻辑卷上的数据将丢失,否则进行事先数据备份
5)、扩展和缩减逻辑卷,下面用到的命令resize2fs只使用于ext系列文件系统扩展与缩减,在centos7上使用xfs_growfs命令进行逻辑卷扩展,但是此命令不能用于逻辑卷缩减
扩展逻辑卷:
# lvextend -L [+]#[mMgGtT] /dev/VG_NAME/LV_NAME
#lvextend -L +10G /dev/vg0/lv0
#lvextend -L 20G /dev/vg0/lv0
#lvextend -l +4000 /dev/vg0/lv0 把逻辑卷/dev/vg0/lv0大小增加4000个PE
此外若要把剩余的卷组的空间全部给逻辑卷/dev/vg0/lv0,那么有如下命令:
#lvextend -r -l +100%FREE /dev/vg0/lv0 且此命令会自动扩展文件系统
# resize2fs /dev/VG_NAME/LV_NAME
# resize2fs /dev/vg0/lv0扩展文件系统即是同步逻辑卷增加的大小,否则#df -h 将无法看到增加
缩减逻辑卷(一般建议在缩减前备份数据以防数据的丢失或损坏):
# umount /dev/VG_NAME/LV_NAME
#umount /dev/vg0/lv0或者/mnt/lv0
# e2fsck -f /dev/VG_NAME/LV_NAME 缩减前的必要文件系统检测,否则会提示错误信息
# resize2fs /dev/VG_NAME/LV_NAME #[mMgGtT]
#resize2fs /dev/vg0/lv0 10G 缩减文件系统大小为10个G
# lvreduce -L [-]#[mMgGtT] /dev/VG_NAME/LV_NAME
# lvreduce -L 10G /dev/vg0/lv0 缩减逻辑卷大小到10G
# lvreduce -L -5G /dev/vg0/lv0 缩减逻辑卷大小5G
# mount -a 重新挂载
4、逻辑卷管理器-快照
1)、快照是特殊的逻辑卷,它在生成快照时对对应的逻辑卷数据进行准确形式拷贝,但是快照只有在它们对应的原逻辑卷或者快照中数据不同时才会真正消耗空间:
在创建快照时会分配给它一定的空间,但只有在对应的逻辑卷或者快照中数据有所改变才会使用这些空间,当对应的逻辑卷或者快照中数据有所改变时,会将其中旧的数据真正复制到快照中;快照中只含有原来的逻辑卷或者快照中未更改的原数据;因为快照只对对应逻辑卷或者快照中改变的文件的原数据进行真正备份,所以建立快照的卷大小只需要原始逻辑卷的15% ~20% 就够了,此外也可以使用lvextend 放大快照
2)、快照就是将当时的系统信息记录下来,就好像照相一般,若将来系统有任何数据改动了,则有改动数据的原始数据会被拷贝到快照区,没有改动的则由快照区和文件系统共享
3)、由于快照区与原本的lv共用很多PE 的区块,因此快照区与被快照的lv必须要在同一个VG 上,系统恢复的时候的文件数量不能高于快照区的实际容量
4)、使用LVM 快照
为现有逻辑卷/dev/vg0/data创建名为/dev/vg0/snap-data的快照:
#lvcreate -l 64 -s -n snap-data -p r /dev/vg0/data
其中-s选项是快照逻辑卷的特殊标记,-p r选项表示以只读方式创建快照逻辑卷
挂载快照:
#mkdir /mnt/snap
快照逻辑卷不需要创建文件系统,可直接挂载
#mount -o ro /dev/vg0/snap-data /mnt/snap 以只读方式挂载快照
删除快照:
#umount /mnt/snap
#lvremove /dev/vg0/snap-data
5、btrfs文件系统-centos7支持
1)、文件系统创建:
#mkfs.btrfs -f -L mydata /dev/sdb /dev/sdc
其中-f选项是强制执行
以/dev/sdb和/dev/sdc两块磁盘为基础创建btrfs文件系统,且两块磁盘是以一个整体使用的,此整体设备以/dev/sdb或者/dev/sdc均可表示
-d <type>: raid0, raid1, raid5, raid6, raid10, single
此选项指定数据的存储方式,成员数量依据指定的raid类型
-m <profile>: raid0, raid1, raid5, raid6, raid10, single,dup
此选项指定元数据的存储方式,成员数量依据指定的raid类型
属性查看:
#btrfs filesystem show
#blkid
挂载文件系统:
#mount /dev/sdb MOUNT_POINT
#mount /dev/sdc MOUNT_POINT
两种挂载等同效果,均是挂载/dev/sdb和/dev/sdc组成的整体设备,#df –h查看可知此文件系统的大小为两磁盘大小之和
2)、btrfs 文件系统
①、透明压缩机制-可以在挂载或者重新挂载时加上此挂载选项:
#mount -o compress={lzo|zlib} DEVICE MOUNT_POINT
#mount -o compress={lzo|zlib},remount DEVICE MOUNT_POINT
也可以使用如下命令查看btrfs文件系统组织数据的相关信息#btrfs filesystem df /mnt/mydata
②、在线修改文件系统大小
#btrfs filesystem resize -10G /mnt/mydata
#btrfs filesystem resize +5G /mnt/mydata
#btrfs filesystem resize max /mnt/mydata
③、添加或者删除btrfs文件系统成员设备:
#btrfs device add /dev/sdd /mnt/mydata
但是新加的成员设备不会自动存储原先数据,可以平衡各成员存储的数据:
#btrfs banlance status /mnt/mydata
删除设备:
#btrfs device delete /dev/sdb /mnt/mydata
修改btrfs文件系统组织数据的raid 级别,注意raid 对成员数量的要求:
#btrfs balance start -mconvert=raid1|raid0|raid5 /mnt/mydata 原数据的组织
#btrfs balance start -dconvert=raid1|raid0|raid5 /mnt/mydata 数据的组织
④、子卷管理,下面的子卷为/mnt/mydata/sub#:
查看子卷信息
#btrfs subvolume list /mnt/mydata
此建立的子卷表现为目录/mnt/mydata下的子目录但不是其目录文件
#btrfs subvolume create /mnt/mydata/sub1
#btrfs subvolume create /mnt/mydata/sub2
[root@centos7 ~]# btrfs subvolume create /mnt/mydata/sub1
Create subvolume '/mnt/mydata/sub1'
[root@centos7 ~]# btrfs subvolume create /mnt/mydata/sub2
Create subvolume '/mnt/mydata/sub2'
[root@centos7 ~]# btrfs subvolume list /mnt/mydata
ID 258 gen 8 top level 5 path sub1
ID 259 gen 9 top level 5 path sub2
此中ID号259代表子卷sub2,挂载时可以代替sub2使用,例如#mount -o subvolid=### /dev/sdd /mnt/sub#
挂载子卷
#mount -o subvol=sub1 /dev/sdd /mnt/sub1
#mount –o subvolid=259 /dev/sdd /mnt/sub2
子卷可以独立挂载独立使用,不依赖于/mnt/mydata是否挂载,其中/dev/sdd是指btrfs文件系统,也即指明子卷的来源
[root@centos7 ~]# mkdir /mnt/sub1
[root@centos7 ~]# mkdir /mnt/sub2
[root@centos7 ~]# mount -o subvol=sub1 /dev/sdb /mnt/sub1
[root@centos7 ~]# mount -o subvol=sub2 /dev/sdb /mnt/sub2
[root@centos7 ~]# df –h
/dev/sdb 60G 18M 56G 1% /mnt/mydata
/dev/sdb 60G 18M 56G 1% /mnt/sub1
/dev/sdb 60G 18M 56G 1% /mnt/sub2
#umount /mnt/mydata
[root@centos7 ~]# df –h
/dev/sdb 60G 18M 56G 1% /mnt/sub1
/dev/sdb 60G 18M 56G 1% /mnt/sub2
查看子卷的属性信息
#btrfs subvolume show /mnt/sub1
删除子卷
#umount /mnt/sub1
#btrfs subvolume delete /dev/mydata/sub1
⑤、创建或者删除快照:
创建快照-对子卷/mnt
#btrfs subvolume snapshot /mnt/mydata/sub1 /mnt/mydata/snapshot_sub1
删除快照
btrfs subvolume delete /mnt/mydata/snapshot_subv1
⑥、实验ext4 和btrfs互转
#btrfs device delete /dev/sdd /mnt/mydata
#fdisk /dev/sdd 分区
#mkfs.ext4 /dev/sdd1
#btrfs-convert /dev/sdd1 转化文件系统ext4 为btrfs
#btrfs-convert -r /dev/sdd1 文件系统btrfs 转化ext4 文件系统
#blkid /dev/sdd1
再转换成btrfs
#btrfs-convert /dev/sdd1
原创文章,作者:18612763863,如若转载,请注明出处:http://www.178linux.com/42386