Linux运维知识之Linux LVM2 磁盘管理及 LUKS 加密
小标 2018-12-21 来源 : 阅读 2023 评论 0

摘要:本文主要向大家介绍了Linux运维知识之Linux LVM2 磁盘管理及 LUKS 加密,通过具体的内容向大家展现,希望对大家学习Linux运维知识有所帮助。

本文主要向大家介绍了Linux运维知识之Linux LVM2 磁盘管理及 LUKS 加密,通过具体的内容向大家展现,希望对大家学习Linux运维知识有所帮助。


LVM 是 Logical Volume Manager (逻辑卷管理)的简写,它由 Heinz Mauelshagen 在 Linux 2.4 内核上实现。 LVM 将一个或多个硬盘的分区在逻辑上集合,相当于一个大硬盘 来使用,当硬盘的空间不够使用的时候,可以继续将其它的硬盘的分区加入其中,这样可 以实现磁盘空间的动态管理,相对于普通的磁盘分区有很大的灵活性。


1、LVM 磁盘管理


1.1 术语



物理卷

Physical Volume(PV), 即物理的磁盘分区





卷组

Volume Group(VG), LVM中的物理的磁盘分区,也就是PV,必须加入VG,可以将VG理解 为一个仓库或者是几个大的硬盘。




逻辑卷

Logical Volume(LV), 也就是从VG中划分的逻辑分区




1.2   磁盘管理


1.2.1 物理卷(PV)操作


创建PV:


pvcreate /dev/sda /dev/sdb1


查看PV:


pvscan


1.2.2 卷组(VG)操作


VG是由各个PV组成的,创建VG:


vgcreate VolGroup /dev/sda /dev/sdb1


VolGroup 是VG名,后面两个设备是加入到 VolGroup 卷组的设备。


查看VG:


vgdisplay


增加VG的设备成员:


vgextend VolGroup /dev/sda3


1.2.3   逻辑卷(LV)操作


LV是在VG上面划分出来的。创建LV:


lvcreate -n osd -L 200G VolGroup


或:


lvcreate -n test -l 50 vg0


从卷组 VolGroup 中创建逻辑卷 osd, 用 -L 指定大小为200G,或用 -l 指 定大小为50个PE(Physical Extents,默认是4MB)


查看LV:


lvdisplay


改变LV大小:


lvresize -L +200G /dev/VolGroup/osd


该命令把 osd 逻辑卷增大了200G,类似的,如果要减小大小200G,用 -200G 即 可。逻辑卷的是从卷组划分来的,其大小当然不能比所在卷组的空间大。


1.2.4 改变 Ext2/3/4 文件系统大小


resize2fs /dev/dnfs/osd


这样会改变 osd 逻辑卷上的Ext3文件系统的大小到 osd 逻辑卷的总大小, resize2fs 也可以指定大小,更多用法,请 man resize2fs. resize2fs 支 持在线改变Ext3文件系统大小,不需卸载即可调整大小。


1.2.5 删除操作


如果不想用逻辑卷管理器了,可以从LV,VG到PV逐层删除:


lvremove /dev/dnfs/osd


把 dnfs 转为休眠状态:


vgchange -an dnfs
lvremove dnfs
pvremove /dev/sda


1.2.6 缩小分区大小


第一步, 先卸载分区


第二步, 强制检查文件系统的正确性:


e2fsck -f /dev/VolGroup/osd


第三步, 缩小文件系统的大小:


resize2fs /dev/VolGroup/osd 1G


即缩小文件系统大小到 1G.


第四步, 缩小逻辑卷的大小:


lvresize -L 1G /dev/VolGroup/osd


即缩小逻辑卷大小到 1G, 这里使用了绝对容量单位.


2、LUKS 磁盘加密


2.1   概念


LUKS(Linux Unified Key Setup) 为 Linux 硬盘加密提供了一种标准,它不仅能通用于不 同的 Linux 发行版本,还支持多用户/口令。因为它的加密密钥独立于口令,所以如果口 令失密,我们可以迅速改变口令而无需重新加密真个硬盘。通过提供一个标准的磁盘上的 格式,它不仅方便之间分布的兼容性,而且还提供了多个用户密码的安全管理。必须首先 对加密的卷进行解密,才能挂载其中的文件系统。


工具: cryptsetup (默认已经安装)


常用参数: luksFormat, luksOpen, luksClose, luksAddKey


使用 cryptsetup 对分区进行了加密后,这个分区就不再允许直接挂载。 LUKS 也是一种 基于device mapper 机制的加密方案。如果要使用这个分区,必须对这个分区做一个映射 ,映射到 /dev/mapper 这个目录里去,我们只能挂载这个映射才能使用。然而做映射 的时候是需要输入解密密码的。


Crypsetup 工具加密的特点:



加密后不能直接挂载


加密后硬盘丢失也不用担心数据被盗


加密后必须做映射才能挂载



步骤:



创建分区并加密分区


映射分区


格式化分区并挂载使用


关闭映射分区



2.2 基本操作


Centos 6.x 上默认的卷组名称是 VolGroup.


创建一个LV:


lvcreate -n jiami -L 1G VolGroup


对LV进行加密:


cryptsetup luksFormat /dev/mapper/VolGroup-jiami


格式化时需要输入密码, 这个密码输入之后是不可更改的.


格式化之后, 我们需要先打开它, 然后才可以执行相关的操作(比如格式化, 挂载):


cryptsetup luksOpen /dev/mapper/VolGroup-jiami jiami


jiami 是解锁之后映射的设备名称, 比如 /dev/mapper/jiami.


下面执行格式化:


mkfs.ext4 /dev/mapper/jiami


之后就可以像正常分区一样操作


2.3 自动挂载


第1步:创建随机密钥文件


sudo dd if=/dev/urandom of=/root/keyfile bs=1024 count=4


第2步:将密钥文件设为只读为root


sudo chmod 0400 /root/keyfile


第3步:将密钥文件添加到LUKS


sudo cryptsetup luksAddKey /dev/mapper/VolGroup-jiami /root/keyfile


第4步:创建一个映射器


sudo nano /etc/crypttab


并添加一个新的条目


jiami      /dev/mapper/VolGroup-jiami  /root/keyfile  luks


或者您可以使用设备的UUID。


步骤5:将设备安装在fstab中


sudo nano /etc/fstab


并添加一个新的条目


/dev/mapper/jiami  /media/jiami     ext4    defaults        0       2


0表示不自检; 1或2表示需要自检, 根分区设为1, 其他分区只能是2.


第6步:重新启动或重新安装


sudo mount -a


2.4 更改分区大小


2.4.1 调整LUKS加密LVM分区的大小


我最近不得不调整我们在安全的FTP服务器上使用的分区。幸运的是,我们在所有机器上使用LVM,因此这是一项简单的任务。我唯一担心的是它是一个LUKS加密分区,我担心由于加密算法和密钥根据新的大小而改变,我会丢失数据。在搜索之后,以下是我提出的调整LUKS分区大小而不丢失任何数据的步骤:


假设和开始信息:



我们有一个名为encrypted的LUKS文件系统,它位于名为encrypted_LV的逻辑卷上


该encypted_LV属于一个名为卷组root_VG


我们将此文件系统安装在/ secret


我们使用ext3作为底层文件系统


我们希望通过从root_VG卷组添加20 Gig来扩展卷(它已作为可用空间提供)。



步骤1.卸载文件系统


umount /secret


步骤2.运行文件系统检查以清理inode表,然后再使用它


fsck.ext3 -C 0 -f /dev/mapper/encrypted


步骤3.关闭LUKS文件系统


cryptsetup luksClose encrypted


步骤4.像扩展任何其他LVM一样扩展逻辑卷(我们正在添加额外的20G空间)


lvextend -L +20G /dev/root_VG/encrypted_LV


步骤5.重新打开加密文件系统并调整其大小


cryptsetup luksOpen /dev/root_VG/encrypted_LV encrypted
cryptsetup --verbose resize myfs


步骤6.再次FSCK(为了测量好)然后调整底层文件系统的大小(本例中为ext3)


fsck.ext3 -f /dev/mapper/encrypted
resize2fs /dev/mapper/encrypted


步骤7.安装新大小的LUKS文件系统并确保一切正常


mount /dev/mapper/encrypted /secret


2.4.2在LVM上调整LUKS上的ext4大小


下一个比较棘手,因为LVM不会自动支持调整大小。


步骤1.调整逻辑卷的大小


lvextend -L +50G /dev/VG-0/LV-1


步骤2.打开LUKS卷


cryptsetup luksOpen /dev/VG-0/LV-1 crypt_LV-1


步骤3.调整内部文件系统的大小(扩展到适合空间)


e2fsck -f /dev/mapper/crypt_LV-1
resize2fs /dev/mapper/crypt_LV-1


(e2fsck是一个很好的做法,无论如何都是由resize2fs强制实施的。)


本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注系统运维Linux频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式AI+学习就业服务平台 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved