linux学习 lesson16磁盘的加密、配额和LVM
一、磁盘的加密
磁盘加密的定义:
众所周知,磁盘里的数据都是非常重要的。为了保护磁盘数据要进行磁盘加密。在RHEL系统中,可以使用cryptsetup工具对磁盘进行加密操作,再创建文件系统
,这样强力破锁也会伴随着数据的直接销毁,实现数据的安全性。
1.命令方法加密
1)加密格式化:必须在卸载状态
cryptsetup luksFormat /dev/vdb1
大写的YES。
加密成功!
2)解密
cryptsetup open /dev/vdb1 名字 ##解密为xxx文件,此文件存放于/dev/mapper/
3)添加文件系统
mkfs.xfs /dev/mapper/kris ##添加文件系统
4)测试
挂载
将其挂载并挂载目录里touch文件。
可以看到文件显示
关锁
关锁之前先解挂(umount)
关锁cryptsetup close /dev/mapper/kris
文件不见了
kris文件也消失。
开锁
那么现在怎么还能看到创建的文件呢?没错,就是再开锁。
cryptsetup open /dev/vdb1 名字
出现了!
2.开机自动加密
step1:vim /etc/crypttab ###将文件关联
文件里编辑:解密后名字 解密设备文件 密码位置
step2:vim /root/kriskey ###记录密码
step3:
chmod 600 /root/kris ###改变权限增加安全性
step4:cryptsetup luksAddKey /dev/vdb1 /root/kriskey ###添加加密解密
step5:vim /etc/fstab
检测:reboot后虚拟机可启动,并df挂载成功
错误:reboot后,虚拟机起不了。因为解密后的文件是一次性的。
改错:在进系统时,按
删除r后,改为rw rd.break
按<ctrl+x>切换到单用户
chroot /sysroot/ 进入真实的根目录
vim /etc/fatab/
删除或者注释自动挂载行 wq退出保存
命令行输入两次exit+回车 重启。并重新进行开锁挂载。
3.恢复:
vim /etc/crypttab
vim /etc/fstab
cryptsetup close kris
mkfs.xfs /dev/vdb1 -f
rm -fr /root/kris
二、磁盘配额
为什么要配额呢?
配合:分配额度,为了约束用户在磁盘中写入数据的大小。配额是针对于分区的,因为用户只有在此分区里写的数据会被限制。
权限(先挂载,再设置挂载目录权限。否则会覆盖)
chmod 1777 /public/
开启
mount -o usrquota /dev/vdb1 /public ##开启usrquota 并挂载vdb1到public下
mount查看状态
编辑限额文件
edquota -u student
编辑内容:限制最大容量为20M(20480k)
设备名 已用大小 软件限制警告 用户能写入设备的最大容量 用户在设备的文件个数 文件个数软限 最多可建多少文件
Filesystem blocks soft hard inodes soft hard
测试
step1
step2
dd if=/dev/zero of=file bs=1M count=10
^ ^ ^
文件名称 单位大小 单位个数
当大小为10M和20M时,文件创建成功。22M的时候因为过大超过配额而报错。
永久设定
以上操作的挂载依然是临时的重启之后不会生效,如果要永久需要修改fstab文件。
vim /etc/fstab
/dev/vdb1 /public xfs defaults,usrquota 0 0
三、LVM
1.LVM的介绍
lvm :Logical Volume Manager(逻辑卷管理)是可以使硬盘无限扩容:
PV(物理卷):物理卷在逻辑卷管理系统最底层,可谓整个物理硬盘或实际物理硬盘上的分区。
VG(物理卷组):卷组建立在物理卷上,一卷组中至少要包括一些物理卷,卷组建立后可动态添加卷到卷组中,一个逻辑卷管理系统工作中可有多个卷组。
LV:逻辑卷建立在卷组基础上,卷组中未分配空间可用于建立新的逻辑卷,逻辑卷建立后可动态拓展或缩小空间
PE(物理拓展,lvm最小的存储单元): 物理分区是物理卷中可用于分配的最小存储单元,物理区域大小在建立卷组时指定,一旦确定不能更改,同一卷组所有物理卷的物理区域大小需一致,新的pv加入vg后,pe的大小自动更改为vg中定义的pe大小。
下面一张图片表现各个部分关系:
2.安装LVM
首先确定系统中是否安装了lvm工具:
rpm -qa|grep lvm
如果命令结果与上例相似,说明系统已经安装了LVM管理工具;如果命令没有输出则说明没有安装LVM管理工具,则需要从网络下载或者从光盘装LVM rpm工具包。
3.建立LVM分区
监控命令
watch -n 1 'pvs;echo ==;vgs;echo ==;lvs;echo ==;df -h /mnt'
pvs |pvdisplay #查看物理卷
vgs |vgdisplay #查看物理圈组
lvs |lvdisplay #对逻辑卷设备进行查看
建立LVM分区
删除原有的分区。新建分区并使用t切换格式,接着l列出所有格式。
找到LVM格式。
在此处linux LVM是我们要选择的,他的代号是8e。在命令行输入代号转换格式。
pvcreate /dev/vdb1 #把物理分区做成物理卷
vgcreate vg0 /dev/vdb1 #用制作好的/dev/vdb1这个物理卷做成一个物理卷组
lvcreate -L 300M -n lv0 vg0 #在vg0组中建立出lv0设备 -L 指定设备大小 -n 指定设备的名字lv0
mkfs.ext4 /dev/vg0/lv0 ##格式化为ext文件
mount /dev/vg0/lv0 /mnt/ ##将设备挂载
看到了mnt size变成了283M 这是因为换算方法不同。一个是1/1024一个是1/1000.
4.拉伸
vg够用
lvextend -L 1800M /dev/vg0/lv0 ##将设备拉伸到1800M
lv size变为1000M
vg不够用
如果要扩大到2000M呢?那我们的vdb1显然是不够用的。
fdisk /dev/vdb ##建立新lvm磁盘
partprobe同步分区表
pvcreate /dev/vdb2 ###把物理分区做成物理卷
vgextend vg0 /dev/vdb2 ###用制作好的/dev/vdb2这个物理卷做成一个物理卷组
VG变成了2G了。加盘成功。
5.LVM压缩
umount /mnt/ 先卸载
e2fsck -f /dev/vg0/lv0 ##看看占用了多少(最小能缩小到多少)##必须查看
为了不使文件遭到破坏压缩大小必须大于此值。不查看无法进行下面步骤。
resize2fs /dev/vg0/lv0 ##缩小文件系统
必须先缩小文件系统,保护文件
mount /dev/vgo/lv0 /mnt/ ##挂载
lvreduce -L 1000M /dev/vg0/lv0 ##将硬件设备缩小。
删除pv
在图中监控可以看到vdb2是完全闲置的,那么我们就可以将它拿出VG。
vgreduce vg0 /dev/vdb2
想要拿出一个不为空的pv怎么办?
先将其内容转移
vgextend vg0 /dev/vdb2 ##先将vdb2重新拉回
pvmove /dev/vdb1 /dev/vdb2 ##将文件移动
此时vdb2闲置可以将其拿出VG。
vgreduce vg0 /dev/vdb1 ##分解vdb1和vg
将pv删除
pvremove vg0 /dev/vdb1 ##删除vdb1
6.磁盘快照
touch /mnt/file ###在原文件/dev/vg0/lv0挂载/mnt状态下
lvcreate -L 100M -n lv0backup -s /dev/vg0/lv0 #制作一个容量为50M的快照lv0backup
mount /dev/vg0/lv0backup /mnt/ 同步到文件系统
ls /mnt
快照挂载文件依然在。
删除快照里/mnt的所有文件。
rm -fr /mnt/*
ls /mnt
umount /mnt ##卸载快照
lvremove /dev/vg0/lv0backup ##删除快照
lvcreate -L 100M -n lv0backup -s /dev/vg0/lv0 ##新建快照
mount /dev/vg0/lv0backup /mnt/ ##挂载新快照
ls /mnt
发现文件还在。
此实验证明,快照建立之后磁盘里内容不会被更改。只是被删除的快照内容。
7.删除LVM可扩展磁盘分区
umount /mnt/
lvremove /dev/vg0/lv0backup #删除快照
lvremove /dev/vg0/lv0 #删除lv0
vgremove vg0 #删除vg0
pvremove /dev/vdb{1…2} #删除物理分区