磁盘配额
在server
dd if=/dev/zero of=/mnt/studentfile bs=1M count=10
截取命令从无限零设备复制文件到/mnt/studentfile 共十份每个1M
dd:用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换
if=文件名: 即指定源文件
of=文件名 :即指定的目的文件
bs=bytes:同时设置输出/读入的块的大小为byets个字节
count=blocks: 仅拷贝blosk个块
加载配额,
配额又称限额,针对的是分区,不是用户也不是文件,更不是整个硬盘
fdisk /dev/vdb 新建一个/dev/vdb1
Calling ioctl() to re-read partition table. (列表已经自动重读)
Syncing disks.
[root@localhost ~]# partprobe
(建立完成后partprobe加载列表)
mkfs.xfs /dev/vdb1 #####格式化/dev/vdb1
mount -o usrquota /dev/vdb1 /mnt/ ####挂载设备
chmod 777 /mnt/ ###给设备权限
(注意并非给文件权限)
edquota -u student ###给student用户设置配额
Disk quotas for user student (uid 1000):
Filesystem blocks soft hard inodes soft hard
/dev/vdb1 20480 0 20480 1 0 0
Blocks表示已存在的文件个数,是一个事实
Soft表示软件容量,超过后会受到警告
Hard表示写入最大额度
Inodes表示使用个数
Soft表示使用次数
Hard表示最大额度
切换student用户
执行 dd if=/dev/zero of=/mnt/studentfile bs=1M count=10 ###配额可满足
但执行dd if=/dev/zero of=/mnt/studentfile bs=1M count=21
dd: error writing ‘/mnt/studentfile’: Disk quota exceeded ###配额不满足
配额开机自动加载
在root用户里执行
vim /etc/fstab ###设置配额开机自动执行
/dev/vdb1 /mnt xfs defaults,usrquota 0 0
配额磁盘 挂载目录 挂载格式 用户配额 不检测 不备份
硬盘扩容分区
Lvm ###
Pv ###物理卷
Vg ###物理卷组
Pe ###物理扩展(最小单元)
做实验前卸载删除
保持实验环境纯净
监控
[root@localhost ~]# watch -n 1 'pvs;vgs;lvs;df -h /mnt'
创立3个分区
[root@localhost ~]# fdisk /dev/vdb
t修改分区8e 修改为lvm
pvcreate /dev/vdb1 ####创建物理卷/dev/vdb1
WARNING: xfs signature detected on /dev/vdb1 at offset 0. Wipe it? [y/n] y (需确认)
Wiping xfs signature on /dev/vdb1.
Physical volume "/dev/vdb1" successfully created ####创建成功
vgcreate vg0 /dev/vdb1 ####将物理卷创建为物理卷组vg0
Volume group "vg0" successfully created
lvcreate -L 300M -n lv0 vg0 ########### 在卷组vg0上创建一个名为lv0的逻辑卷大小为300M 设备接口为/dev/vg0/lv0
mkfs.xfs /dev/vg0/lv0 格式化逻辑卷lv0
mount /dev/vg0/lv0 /mnt/ 将逻辑卷lv0挂载至/mnt/
/dev/vg0/lv0 /dev/mapper/vg0-lv0这两个代表同一个东西
[root@localhost ~]# ll /dev/vg0/lv0
lrwxrwxrwx. 1 root root 7 May 4 23:01 /dev/vg0/lv0 -> ../dm-0
[root@localhost ~]# ll /dev/mapper/vg0-lv0
lrwxrwxrwx. 1 root root 7 May 4 23:01 /dev/mapper/vg0-lv0 -> ../dm-0
xfs扩容 此扩容方式不可缩减 在不卸载设备的情况下可扩容
lvextend -L 500M /dev/vg0/lv0 逻辑卷/dev/vg0/lv0增加 500M 空间
xfs_growfs /dev/vg0/lv0 格式化逻辑卷 /dev/vg0/lv0
pvcreate /dev/vdb2 删除物理卷 /dev/vdb2
vgextend vg0 /dev/vdb2 向卷组 "vg0" 中添加物理卷/dev/vdb2
lvextend -L 1500M /dev/vg0/lv0 逻辑卷/dev/vg0/lv0增加 1500M 空间
xfs_growfs /dev/vg0/lv0 格式化逻辑卷 /dev/vg0/lv0
Ext4扩容方式,可拉伸可缩减
先卸载挂载的设备
umount /dev/vg0/lv0
mkfs.ext4 /dev/vg0/lv0 格式化/dev/vg0/lv0 为ext4格式
挂载设备至/mnt/
lvextend -L 1800M /dev/vg0/lv0 罗辑卷/dev/vg0/lv0增加 1500M 空间
resize2fs /dev/vg0/lv0 对逻辑卷进行扩容
设备缩减
先卸载 umount /mnt/
扫描 e2fsck -f /dev/vg0/lv0
缩减文件系统 resize2fs /dev/vg0/lv0 1000M
再挂载 mount /dev/vg0/lv0 /mnt/
缩减设备 lvreduce -L 1000M /dev/vg0/lv0
迁移vg
Pvs查看设备使用情况
若设备正在使用,需先将设备迁移至一块闲置的设备
pvmove /dev/vdb1 /dev/vdb2 ###将设备1的数据迁移到设备2
vgreduce vg0 /dev/vdb1 ####将设备1闲置出来
pvremove /dev/vdb1 ####将闲置出来的设备1取出
设备快照
快照时设备空闲的空间不够时需先配额一下
先在/mnt/下建立九个文件
umount /mnt/ ####将设备卸载
lvcreate -L 50M -n lv0backup -s /dev/vg0/lv0 ###快照
.显示可用空间不够,此时应该配额
[root@localhost ~]# pvcreate /dev/vdb1
Physical volume "/dev/vdb1" successfully created
[root@localhost ~]# vgextend vg0 /dev/vdb1
Volume group "vg0" successfully extended
配额成功后再快照
lvcreate -L 50M -n lv0backup -s /dev/vg0/lv0
[root@localhost ~]# mount /dev/vg0/lv0backup /mnt/ ###装载快照至/mnt/
[root@localhost ~]# cd /mnt/
[root@localhost mnt]# ls #####查看文件快照过来了
hello1 hello3 hello5 hello7 hello9
hello2 hello4 hello6 hello8 lost+found
删除所有东西,并卸载设备
[root@localhost ~]# lvremove /dev/vg0/lv0backup ###删除逻辑卷(快照)
[root@localhost ~]# lvcreate -L 50M -n lv0backup -s /dev/vg0/lv0 ####再次进行快照
Rounding up size to full physical extent 52.00 MiB
Logical volume "lv0backup" created
[root@localhost ~]# mount /dev/vg0/lv0backup /mnt/ ####将快照加载到/mnt/
[root@localhost ~]# cd /mnt/ ####查看文件,在,快照成功
[root@localhost mnt]# ls
hello1 hello3 hello5 hello7 hello9
hello2 hello4 hello6 hello8 lost+found
删除配额
[root@localhost ~]# umount /mnt/ #####先卸载设备
[root@localhost ~]# lvremove /dev/vg0/lv0backup ####删除 /dev/vg0/lv0backup逻辑卷
[root@localhost ~]# lvremove /dev/vg0/lv0 ####删除/dev/vg0/lv0逻辑卷
[root@localhost ~]# vgremove vg0 ####删除vg0
[root@localhost ~]# pvremove /dev/vdb{1..2} ###删除磁盘/dev/vdb1和2
删除完成