RHCSA 系列(六): 使用 Parted 和 SSM 来配置和加密系统存储

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介:

在本篇文章中,我们将讨论在 RHEL 7 中如何使用传统的工具来设置和配置本地系统存储,并介绍系统存储管理器(也称为 SSM),它将极大地简化上面的任务。

RHCSA: 配置和加密系统存储 – Part 6

RHCSA: 配置和加密系统存储 – Part 6

请注意,我们将在这篇文章中展开这个话题,但由于该话题的宽泛性,我们将在下一期中继续介绍有关它的描述和使用。

在 RHEL 7 中创建和修改分区

在 RHEL 7 中, parted 是默认的用来处理分区的程序,且它允许你:

  • 展示当前的分区表
  • 操纵(扩大或缩小分区的大小)现有的分区
  • 利用空余的磁盘空间或额外的物理存储设备来创建分区

强烈建议你在试图增加一个新的分区或对一个现有分区进行更改前,你应当确保该设备上没有任何一个分区正在使用(umount /dev/分区),且假如你正使用设备的一部分来作为 swap 分区,在进行上面的操作期间,你需要将它禁用(swapoff -v /dev/分区) 。

实施上面的操作的最简单的方法是使用一个安装介质例如一个 RHEL 7 的 DVD 或 USB 安装盘以急救模式启动 RHEL(Troubleshooting → Rescue a Red Hat Enterprise Linux system),然后当让你选择一个选项来挂载现有的 Linux 安装时,选择“跳过”这个选项,接着你将看到一个命令行提示符,在其中你可以像下图显示的那样开始键入与在一个未被使用的物理设备上创建一个正常的分区时所用的相同的命令。

RHEL 7 急救模式

RHEL 7 急救模式

要启动 parted,只需键入:


 
 
  1. # parted /dev/sdb

其中 /dev/sdb 是你将要创建新分区所在的设备;然后键入 print 来显示当前设备的分区表:

创建新的分区

创建新的分区

正如你所看到的那样,在这个例子中,我们正在使用一个 5 GB 的虚拟驱动器。现在我们将要创建一个 4 GB 的主分区,然后将它格式化为 xfs 文件系统,它是 RHEL 7 中默认的文件系统。

你可以从一系列的文件系统中进行选择。你将需要使用 mkpart 来手动地创建分区,接着和平常一样,用mkfs.类型 来对分区进行格式化,因为 mkpart 并不支持许多现代的文件系统的到即开即用。

在下面的例子中,我们将为设备设定一个标记,然后在 /dev/sdb 上创建一个主分区 (p),它从设备的 0% 开始,并在 4000MB(4 GB) 处结束。

标记分区的名称

标记分区的名称

接下来,我们将把分区格式化为 xfs 文件系统,然后再次打印出分区表,以此来确保更改已被应用。


 
 
  1. # mkfs.xfs /dev/sdb1
  2. # parted /dev/sdb print

格式化分区为 XFS 文件系统

格式化分区为 XFS 文件系统

对于旧一点的文件系统,在 parted 中你可以使用 resize 命令来改变分区的大小。不幸的是,这只适用于 ext2, fat16, fat32, hfs, linux-swap, 和 reiserfs (若 libreiserfs 已被安装)。

因此,改变分区大小的唯一方式是删除它然后再创建它(所以,确保你对你的数据做了完整的备份!)。毫无疑问,在 RHEL 7 中默认的分区方案是基于 LVM 的。

使用 parted 来移除一个分区,可以用:


 
 
  1. # parted /dev/sdb print
  2. # parted /dev/sdb rm 1

移除或删除分区

移除或删除分区

逻辑卷管理(LVM)

一旦一个磁盘被分好了分区,再去更改分区的大小就是一件困难或冒险的事了。基于这个原因,假如我们计划在我们的系统上对分区的大小进行更改,我们应当考虑使用 LVM 的可能性,而不是使用传统的分区系统。这样多个物理设备可以组成一个逻辑组,以此来存放任意数目的逻辑卷,而逻辑卷的增大或减少不会带来任何麻烦。

简单来说,你会发现下面的示意图对记住 LVM 的基础架构或许有用。

LVM 的基本架构

LVM 的基本架构

创建物理卷,卷组和逻辑卷

遵循下面的步骤是为了使用传统的卷管理工具来设置 LVM。由于你可以通过阅读这个网站上的 LVM 系列来扩展这个话题,我将只是概要的介绍设置 LVM 的基本步骤,然后与使用 SSM 来实现相同功能做个比较。

: 我们将使用整个磁盘 /dev/sdb 和 /dev/sdc 来作为物理卷(PV),但是否执行相同的操作完全取决于你。

1. 使用 /dev/sdb 和 /dev/sdc 中 100% 的可用磁盘空间来创建分区 /dev/sdb1 和 /dev/sdc1


 
 
  1. # parted /dev/sdb print
  2. # parted /dev/sdc print

创建新分区

创建新分区

2. 分别在 /dev/sdb1 和 /dev/sdc1 上共创建 2 个物理卷。


 
 
  1. # pvcreate /dev/sdb1
  2. # pvcreate /dev/sdc1

创建两个物理卷

创建两个物理卷

记住,你可以使用 pvdisplay /dev/sd{b,c}1 来显示有关新建的物理卷的信息。

3. 在上一步中创建的物理卷之上创建一个卷组(VG):


 
 
  1. # vgcreate tecmint_vg /dev/sd{b,c}1

创建卷组

创建卷组

记住,你可使用 vgdisplay tecmint_vg 来显示有关新建的卷组的信息。

4. 像下面那样,在卷组 tecmint_vg 之上创建 3 个逻辑卷(LV):


 
 
  1. # lvcreate -L 3G -n vol01_docs tecmint_vg [vol01_docs 3 GB]
  2. # lvcreate -L 1G -n vol02_logs tecmint_vg [vol02_logs 1 GB]
  3. # lvcreate -l 100%FREE -n vol03_homes tecmint_vg [vol03_homes 6 GB]

创建逻辑卷

创建逻辑卷

记住,你可以使用 lvdisplay tecmintvg 来显示有关在 tecmintvg 之上新建的逻辑卷的信息。

5. 格式化每个逻辑卷为 xfs 文件系统格式(假如你计划在以后将要缩小卷的大小,请别使用 xfs 文件系统格式!):


 
 
  1. # mkfs.xfs /dev/tecmint_vg/vol01_docs
  2. # mkfs.xfs /dev/tecmint_vg/vol02_logs
  3. # mkfs.xfs /dev/tecmint_vg/vol03_homes

6. 最后,挂载它们:


 
 
  1. # mount /dev/tecmint_vg/vol01_docs /mnt/docs
  2. # mount /dev/tecmint_vg/vol02_logs /mnt/logs
  3. # mount /dev/tecmint_vg/vol03_homes /mnt/homes

移除逻辑卷,卷组和物理卷

7.现在我们将进行与刚才相反的操作并移除逻辑卷、卷组和物理卷:


 
 
  1. # lvremove /dev/tecmint_vg/vol01_docs
  2. # lvremove /dev/tecmint_vg/vol02_logs
  3. # lvremove /dev/tecmint_vg/vol03_homes
  4. # vgremove /dev/tecmint_vg
  5. # pvremove /dev/sd{b,c}1

8. 现在,让我们来安装 SSM,我们将看到如何只用一步就完成上面所有的操作!


 
 
  1. # yum update && yum install system-storage-manager

我们将和上面一样,使用相同的名称和大小:


 
 
  1. # ssm create -s 3G -n vol01_docs -p tecmint_vg --fstype ext4 /mnt/docs /dev/sd{b,c}1
  2. # ssm create -s 1G -n vol02_logs -p tecmint_vg --fstype ext4 /mnt/logs /dev/sd{b,c}1
  3. # ssm create -n vol03_homes -p tecmint_vg --fstype ext4 /mnt/homes /dev/sd{b,c}1

是的! SSM 可以让你:

  • 初始化块设备来作为物理卷
  • 创建一个卷组
  • 创建逻辑卷
  • 格式化逻辑卷,以及
  • 只使用一个命令来挂载它们

9. 现在,我们可以使用下面的命令来展示有关物理卷、卷组或逻辑卷的信息:


 
 
  1. # ssm list dev
  2. # ssm list pool
  3. # ssm list vol

检查有关物理卷、卷组或逻辑卷的信息

检查有关物理卷、卷组或逻辑卷的信息

10. 正如我们知道的那样, LVM 的一个显著的特点是可以在不停机的情况下更改(增大或缩小)逻辑卷的大小:

假定在 vol02logs 上我们用尽了空间,而 vol03homes 还留有足够的空间。我们将把 vol03homes 的大小调整为 4 GB,并使用剩余的空间来扩展 vol02logs:


 
 
  1. # ssm resize -s 4G /dev/tecmint_vg/vol03_homes

再次运行 ssm list pool,并记录 tecmint_vg 中的剩余空间的大小:

查看卷的大小

查看卷的大小

然后执行:


 
 
  1. # ssm resize -s+1.99 /dev/tecmint_vg/vol02_logs

: 在 -s 后的加号暗示特定值应该被加到当前值上。

11. 使用 ssm 来移除逻辑卷和卷组也更加简单,只需使用:


 
 
  1. # ssm remove tecmint_vg

这个命令将返回一个提示,询问你是否确认删除卷组和它所包含的逻辑卷:

移除逻辑卷和卷组

移除逻辑卷和卷组

管理加密的卷

SSM 也给系统管理员提供了为新的或现存的卷加密的能力。首先,你将需要安装 cryptsetup 软件包:


 
 
  1. # yum update && yum install cryptsetup

然后写出下面的命令来创建一个加密卷,你将被要求输入一个密码来增强安全性:


 
 
  1. # ssm create -s 3G -n vol01_docs -p tecmint_vg --fstype ext4 --encrypt luks /mnt/docs /dev/sd{b,c}1
  2. # ssm create -s 1G -n vol02_logs -p tecmint_vg --fstype ext4 --encrypt luks /mnt/logs /dev/sd{b,c}1
  3. # ssm create -n vol03_homes -p tecmint_vg --fstype ext4 --encrypt luks /mnt/homes /dev/sd{b,c}1

我们的下一个任务是往 /etc/fstab 中添加条目来让这些逻辑卷在启动时可用,而不是使用设备识别编号(/dev/something)。

我们将使用每个逻辑卷的 UUID (使得当我们添加其他的逻辑卷或设备后,我们的设备仍然可以被唯一的标记),而我们可以使用 blkid 应用来找到它们的 UUID:


 
 
  1. # blkid -o value UUID /dev/tecmint_vg/vol01_docs
  2. # blkid -o value UUID /dev/tecmint_vg/vol02_logs
  3. # blkid -o value UUID /dev/tecmint_vg/vol03_homes

在我们的例子中:

找到逻辑卷的 UUID

找到逻辑卷的 UUID

接着,使用下面的内容来创建 /etc/crypttab 文件(请更改 UUID 来适用于你的设置):


 
 
  1. docs UUID=ba77d113-f849-4ddf-8048-13860399fca8 none
  2. logs UUID=58f89c5a-f694-4443-83d6-2e83878e30e4 none
  3. homes UUID=92245af6-3f38-4e07-8dd8-787f4690d7ac none

然后在 /etc/fstab 中添加如下的条目。请注意到 devicename (/dev/mapper/devicename) 是出现在 /etc/crypttab 中第一列的映射标识:


 
 
  1. # Logical volume vol01_docs:
  2. /dev/mapper/docs /mnt/docs ext4 defaults 0 2
  3. # Logical volume vol02_logs
  4. /dev/mapper/logs /mnt/logs ext4 defaults 0 2
  5. # Logical volume vol03_homes
  6. /dev/mapper/homes /mnt/homes ext4 defaults 0 2

现在重启(systemctl reboot),则你将被要求为每个逻辑卷输入密码。随后,你可以通过检查相应的挂载点来确保挂载操作是否成功:

确保逻辑卷挂载点

确保逻辑卷挂载点

总结

在这篇教程中,我们开始探索如何使用传统的卷管理工具和 SSM 来设置和配置系统存储,SSM 也在一个软件包中集成了文件系统和加密功能。这使得对于任何系统管理员来说,SSM 是一个非常有价值的工具。

本文来自云栖社区合作伙伴“Linux中国”,原文发布日期:2015-09-21 08:23

目录
相关文章
|
3月前
|
Java 数据库连接 Maven
手把手教你如何搭建SSM框架、图书商城系统案例
这篇文章是关于如何搭建SSM框架以及实现一个图书商城系统的详细教程,包括了项目的配置文件整合、依赖管理、项目结构和运行效果展示,并提供了GitHub源码链接。
手把手教你如何搭建SSM框架、图书商城系统案例
|
3月前
|
存储 NoSQL 数据库
认证服务---整合短信验证码,用户注册和登录 ,密码采用MD5加密存储 【二】
这篇文章讲述了在分布式微服务系统中添加用户注册和登录功能的过程,重点介绍了用户注册时通过远程服务调用第三方服务获取短信验证码、使用Redis进行验证码校验、对密码进行MD5加密后存储到数据库,以及用户登录时的远程服务调用和密码匹配校验的实现细节。
认证服务---整合短信验证码,用户注册和登录 ,密码采用MD5加密存储 【二】
|
3月前
|
存储 缓存 NoSQL
【Azure Redis 缓存】关于Azure Cache for Redis 服务在传输和存储键值对(Key/Value)的加密问题
【Azure Redis 缓存】关于Azure Cache for Redis 服务在传输和存储键值对(Key/Value)的加密问题
|
2月前
|
Java 应用服务中间件 数据库连接
ssm项目整合,简单的用户管理系统
文章介绍了一个使用SSM框架(Spring、SpringMVC、MyBatis)构建的简单用户管理系统的整合过程,包括项目搭建、数据库配置、各层代码实现以及视图展示。
ssm项目整合,简单的用户管理系统
|
2月前
|
存储 安全 数据库
Uno Platform 安全数据存储秘籍大公开!加密、存储、读取全攻略,让你的数据固若金汤!
在软件开发中,安全的数据存储至关重要。本文介绍如何在跨平台开发框架 Uno Platform 中实现安全数据存储,包括选择合适的数据存储方式(如本地文件或 SQLite 数据库)和使用 Bouncy Castle 加密库对数据进行 AES 加密。通过示例代码展示了数据的加密、存储及解密过程,帮助开发者保护用户敏感信息,防止数据泄露。
43 3
|
1月前
|
存储 安全 数据库
Uno Platform 安全数据存储秘籍大公开!加密、存储、读取全攻略,让你的数据固若金汤!
在 Uno Platform 中实现安全的数据存储需要选择合适的数据存储方式,并对存储的数据进行加密。通过加密数据,可以保护用户的敏感信息,防止数据泄露。同时,在读取和使用数据时,需要进行解密操作,确保数据的可用性。希望本文对你在 Uno Platform 中实现安全的数据存储有所帮助。
27 0
|
3月前
|
存储 算法 Java
在Java中使用MD5对用户输入密码进行加密存储、同时登录验证。
这篇文章详细介绍了在Java项目中如何使用MD5算法对用户密码进行加密存储和登录验证,包括加入依赖、编写MD5工具类、注册时的密码加密和登录时的密码验证等步骤,并通过示例代码和数据库存储信息展示了测试效果。
在Java中使用MD5对用户输入密码进行加密存储、同时登录验证。
|
2月前
|
XML Java 数据库连接
如何搭建SSM框架、图书商城系统
这是一份详尽的《Spring + SpringMVC + Mybatis 整合指南》,作者耗时良久整理出约五万字的内容,现已经全部笔记公开。此文档详细地介绍了如何搭建与整合SSM框架,具体步骤包括创建Maven项目、添加web骨架、配置pom文件以及整合Spring、SpringMVC和Mybatis等。无论是对初学者还是有一定基础的开发者来说,都是很好的学习资源。此外,作者还提供了项目源码的GitHub链接,方便读者实践。虽然当前主流推荐学习SpringBoot,但了解SSM框架仍然是不可或缺的基础。
34 0
|
3月前
|
jenkins 应用服务中间件 持续交付
如何配置 Nginx 作为 Jenkins 的反向代理并启用 SSL 加密
如何配置 Nginx 作为 Jenkins 的反向代理并启用 SSL 加密
178 8
|
3月前
|
Java 应用服务中间件 Maven
Mac使用Idea配置传统SSM项目(非maven项目)
Mac使用Idea配置传统SSM项目(非maven项目)
51 1

热门文章

最新文章