EX200 的 Dump,现在好像有附加题了,仅供参考吧

2021-03-20 更新: RHCSA 已通过,不再更新

2021-03-16 更新: 调整文章部分顺序,修正部分题解 本周末我将去参加考试,之后大概率不会再更新此文

2021-01-22 更新,容器部分做法 接下来会重新整理此文

此题解配合某实验环境使用,恕不提供 EX200 Dump,仅作为参考,不作为标准答案提供。

其实你们去 Google 都能搜出一大堆 EX200 Dump,题目基本没啥区别,不一定非得看我的

实验环境与注意事项

实验环境为 VMware 虚拟机一台。内部已配置好实验环境。

如需内外访问,需打开宿主机系统 VMnet1 并分配 IP 地址为 172.25.0.200/24

在虚拟机中 ( 以下将统称为 Server1 ),使用 rht-vmctl reset 命令重置实验环境。

对本题 ( 即 EX200 ),涉及到的主机为 redblue,即:

1rht-vmctl reset red # 重置 red 环境
2rht-vmctl reset blue # 重置 blue 环境

之后打开 Virt Manager 即可操作实验机 ( 以下将称为 redblue )

可在 GNOME 桌面环境中直接打开,也可在终端中输入

1virt-manager

下面将不重复写出题目需求。

Red

1localhost login: # 提示登录,输入用户名是:root
2Password:# 提示输入密码,密码是:redhat

配置网络地址

1ip a s # (ip address show,查看网卡和对应的IP)

在Linux中网卡的名称一般为 eth0, eth1, eth2(ethernet),有时网卡名也可能是ens33ens36

nmtui 配置 IP 的工具

image-20201210112318431

Edit a connection回车

image-20201210112358733

选择需要配置IP的网卡名称,如 eth0,再选择右边的 Edit(结合左右键和上下键),回车

image-20201210112502986

上下键选择IPv4后面的回车.

image-20201210112523664

选择 Manual (手动配置IP),回车

image-20201210112618967

方向机选择右边的 show 回车

Addrees(IP 地址),点击 Add 回车即可添加 IP

Gateway(网关),直接输入

DNS servers(DNS 域名解析服务器),点击 Add 回车即可添加服务器 IP

在实验环境:

IP172.25.0.25/24 (24就是子网掩码255.255.255.0)

Gateway: 172.25.0.254 (server1是网关)

DNS172.25.0.254server1DNS服务器)

image-20201210112813602

一定勾选 ( 使用空格选择,或者取消选择 )

Automatically connect在计算机启动的时候要不要把网卡自动激活,

最后选择 OK

image-20201210112909432

选择下面的 Back 返回

image-20201210112944838

最后选择 OK

Server1 上面 ping 一次 red 测试网络是否已经联通:

1ping -c 4 172.25.0.25

配置默认软件仓库

1ls /etc/yum.repos.d/ # 没有yum源
2vim /etc/yum.repos.d/rhel.repo # 新建文件,文件名任意,扩展名为repo

默认在命令模式,无法编辑文件,需要输入i键,进入编辑模式,手动输入如下内容:

1[BaseOS]
2name=BaseOS
3baseurl=http://server1.net0.example.com/rhel8/BaseOS
4gpgcheck=0
5
6[AppStream]
7name=AppStream
8baseurl=http://server1.net0.example.com/rhel8/AppStream
9gpgcheck=0

验证:

1yum clean all # 清理缓存
2yum repolist # 查看yum源有几个,输出出来

调试 SELinux

实质上这道题是配合非常规配置时对 SELinux 进行配置

12月17日新增:

上课讲题了。

这道题可使用 setroubleshoot-server

1yum install -y setroubleshoot-server
2systemctl start httpd
3journelctl -xe

查看日志,SETroubleshoot会直接给出命令与方法:

1semanage port -a -t http_port_t -p tcp 82

以下为原答案

配合非正常端口

需要 semanage 程序,如果没有预装,需要安装此包。

1# 查询哪一个软件包包含此软件
2yum provides semanage
3# 安装 policycoreutils-python-utils
4yum install -y policycoreutils-python-utils

此例子为放行 82 号端口

1semanage port -a -t http_port_t -p tcp 82

之后查看配置

1semanage port -l | grep http_port_t

之后可以启动 httpd 服务

1systemctl start httpd

检查 SELinux 工作状态

1getenforce

扩展项目:配合非默认目录

配合非默认目录需要修改 SELinux 安全上下文。

如,要将 Web 根目录修改为 /var/test_www/html/.

  • 修改 SELinux 类型与默认的 /var/www/html/ 相同
1semanage fcontext -a -e /var/www /var/test_www
  • 重新设定 /var 目录标签
1restorecon -Rv /var/

以上

检查 httpd 服务与连接状态

1systemctl status httpd
2
3curl localhost:82

参考:RHEL8 Documents: Use SELinux: Cheaper 4 . CONFIGURING SELINUX FOR APPLICATIONS AND SERVICES WITH NON-STANDARD CONFIGURATIONS

配置用户账户

创建一个新用户,用户名为tammy,指定ID为2020

1useradd -u 2020 tammy

其中 -u 参数指定新建用户的 UID

为tammy用户设置密码

1passwd tammy

注:passwd 生效时,会提示New UNIX password: ,输入题目要求(ilovelinux)并Retype一遍即可生效。

扩展部分:

给出另一种方法设置密码,使用 --stdin 参数指定 passwd 命令从标准输入读入内容来设置密码。

因此使用 echo 将要设定的密码字符串输出至标准输入,并利用管道符使其作为 passwd 命令的输入。

1echo ilovelinux | passwd tammy --stdin

创建用户账户

12月17日新增

到底是应该用附加组,希望正式考题的中文翻译不要有这种奇怪的模棱两可的东西。

Anyway:

1useradd -G admins zhsan
2useradd -G admins lisi

写成这样凑合看吧

以下为原题解:

注意原题解错误之处

按照需求,对用户和组进行创建

1groupadd admins
2useradd zhsan -g admins
3useradd lisi -g admins
4useradd wangwu -s /sbin/nologin 

其中 -g 参数指定创建用户代表的主要组

-s 命令代表用户登录 Shell

禁止用户登录需要指定为 /sbin/nologin

接下来可以普通的使用 passwd 更改密码,如下:

1$ passwd zhsan
2New UNIX password:ilovelinux
3$ passwd lisi
4New UNIX password: ilovelinux
5$ passwd wangwu
6New UNIX password:ilovelinux

也可以:

1echo ilovelinux | passwd zhsan --stdin
2echo ilovelinux | passwd lisi --stdin
3echo ilovelinux | passwd wangwu --stdin

配置 cron 计划任务

编辑 cron 计划

1crontab -e -u zhsan

e代表编辑计划任务,-u代表指定用户

此处注意,题目要求以 zhsan 用户执行任务,而不是root 账户执行任务!

此命令执行后会打开默认编辑器 ( 即 vim )

i 进入插入模式,输入一行

1*/5 * * * * logger "RH200 Test"

对应分别为:分 小时 日 月 星期 命令

这里注意不要犯这个大错误

如果写成 5 * * * * 代表每次满足分钟为 5 的时候执行后面的命令。

5 分钟执行一次命令则需要写成 */5 * * * *

其实网上有 cron 表达式计算器,但考试需要自己学好:

链接放这:cron 表达式详解

ESC 返回命令模式,:wq 保存退出。

扩展:可将计划任务写进 /etc/crontab 中,此文件保存系统级计划任务,需要额外增加执行的用户名。也可写进 /var/spool/cron/ 下对应用户的文件中。

配置文件权限

分析题目,我们需要做几件事情:

  • 复制所需文件
  • 设置文件的所属用户与所属组
  • 确定所有用户没有执行权限
  • 确定其他用户 ( o 权限组) 具有读写权限
  • 按需求对两个用户配置 ACL

来看命令

1cp /etc/hosts /var/tmp/hosts

查看一下文件权限:

1$ ls -l /var/tmp/hosts
2-rw-r--r--. 1 root root 782 Dec 10 21:35 /var/tmp/hosts

当前所属用户与组已经为 root 其实无需修改,如要修改,使用 chown 命令:

1chown root:root /var/tmp/hosts

当前权限为644,对于题目需求也无需修改,所有用户均无执行权限,且其他用户有读权限。

对于两条针对用户的特殊权限需要配置两条 ACL

1setfacl -m u:zhsan:6 /var/tmp/hosts
2setfacl -m u:lisi:0 /var/tmp/hosts

查看权限:

 1[root@red ~]# ls -l /var/tmp/hosts
 2-rw-rw-r--+ 1 root root 782 Dec 10 21:35 /var/tmp/hosts
 3[root@red ~]# getfacl /var/tmp/hosts
 4getfacl: Removing leading '/' from absolute path names
 5# file: var/tmp/hosts
 6# owner: root
 7# group: root
 8user::rw-
 9user:zhsan:rw-
10user:lisi:---
11group::r--
12mask::rw-
13other::r--

创建公用目录

首先按要求创建目录

1mkdir /home/tools

将其所属组更改为 admins

1chgrp admins /home/tools

当前权限应为

1[root@red ~]# ls -ld /home/tools
2drwxr-xr-x. 2 root admins 6 Dec  9 14:57 /home/tools

分析当前权限可得,当前 root 用户可读可写可访问,所属组可读可访问,其他用户可读可访问。

需要分配的权限为drwxrwx--- 即对组可读写可访问,并取消对其他用户的权限。根据数字模式计算可得 770 。因此执行:

1chmod 770 /home/tools

再次查看,当前权限为:

1[root@red ~]# ls -ld /home/tools
2drwxrwx---. 2 root admins 6 Dec  9 14:57 /home/tools

将在此目录下创建的文件默认设置为此组,需要设置 SetGID 权限

1chmod 2770 /home/tools

权限变为:

1[root@red ~]# ls -ld /home/tools
2drwxrws---. 2 root admins 6 Dec  9 14:57 /home/tools

扩展知识:SetUID 与 SetGID

如果你使用过一阵 Linux ,你一定对 sudo 命令不感到陌生。sudo 命令相当于临时提权至 root 用户执行程序。SetUIDSetGID 在理解上与 sudo 有相似之处。

SetUIDSetGID 是一种特殊权限,对于文件来说,它意为:当用户拥有可执行这个文件的权限时,自动使用所属用户 ( 或组 ) 的特权来执行文件。

而对于目录来说,当设定 SetGID 权限时,则意为:当用户创建新文件或子目录时,将文件和子目录的所属组置为当前目录设定的所属组。

一般对于目录是不能设定 SetUID 权限的!

SetUIDSetGID 有其指定的标识符,为 s 权限。可以使用 u+sg+s 的方式设定。

SetUIDSetGID 也有其数字表示法,如:

当前有一文件 test.txt权限为:-rw-r--r-- 即默认的644 权限。

对此文件指定 SetUID 权限为

1chmod 4644 test.txt

SetGID 为:

1chmod 2644 test.txt

若指定两者,加起来即可,即为:

1chmod 6644 test.txt

参考:WikiPedia:Setuid

manpage: chmod

配置 NTP 时间客户端

安装 chrony 软件包

1yum install chrony

修改配置文件 /etc/chrony.conf

1vim /etc/chrony.conf

在开头第 3 行,仿照写法新建一行,填入:

1server server1.net0.example.com iburst

启动服务

1systemctl enable chronyd
2systemctl restart chronyd

查看时间状态

1timedatectl status # 查看时间同步状态与时区等信息
2chronyc sourcestats # 查看 NTP 服务器状态

示例:

 1[root@red ~]# timedatectl status
 2               Local time: Thu 2020-12-10 22:52:03 CST
 3           Universal time: Thu 2020-12-10 14:52:03 UTC
 4                 RTC time: Thu 2020-12-10 14:52:03
 5                Time zone: Asia/Shanghai (CST, +0800)
 6System clock synchronized: yes
 7              NTP service: active
 8          RTC in local TZ: no
 9[root@red ~]# chronyc sourcestats
10210 Number of sources = 5
11Name/IP Address            NP  NR  Span  Frequency  Freq Skew  Offset  Std Dev
12==============================================================================
13time.cloudflare.com         7   4   206     -4.223     53.666    +27ms  2057us
14139.199.214.202             7   5   201     +3.024     45.744  +1663us   845us
15ntp5.flashdance.cx          6   5   208    +15.205     46.942    -14ms   980us
16stratum2-1.ntp.led01.ru.>   6   5   141    +93.992    127.219    +30ms  2253us
17server1.net0.example.com    7   3   199     -0.043      1.802  -1184us    47us

注:此处实验环境接通互联网,局域网环境中可以将配置文件中原配置注释掉,加快速度

配置 autofs

此题需要处理自动挂载与 NFS 共享

需要安装 nfs-utilsautofs 软件包

1yum install nfs-utils autofs

可以使用 showmount 查看挂载信息

1[root@red ~]# showmount -e 172.25.0.254
2Export list for 172.25.0.254:
3/rhome *

可以尝试进行手动挂载,但无论如何要先创建挂载点:

1mkdir /rhome # 创建挂载点的父目录

接下来编辑 /etc/auto.master 文件

1vim /etc/auto.master

在第 7 行原位置,仿照原配置在下面新建一行,输入要挂载的父目录位置与要创建的配置文件:

1/rhome    /etc/rhome.misc

保存退出,创建 /etc/rhome.misc

1vim /etc/rhome.misc

输入一行:

1ldapuser0    -fstype=nfs    172.25.0.254:/rhome/ldapuser0

分别为:要挂载的目录,文件系统类型,与挂载设备,此处为通过 NFS 挂载

启动 autofs 服务

1systemctl start autofs

切换至 ldapuser0 用户验证配置

1su - ldapuser0 # 无需退出登录,直接切换至目标用户

查看自动挂载效果与权限

 1[root@red ~]# systemctl start autofs
 2[root@red ~]# ls -l /rhome/
 3total 0
 4[root@red ~]# su - ldapuser0
 5Last login: Thu Dec 10 22:36:58 CST 2020 on pts/0
 6[ldapuser0@red ~]$ ls -l /rhome
 7total 0
 8[ldapuser0@red ~]$ cd /rhome
 9[ldapuser0@red rhome]$ ls
10[ldapuser0@red rhome]$ cd ldapuser0
11[ldapuser0@red ldapuser0]$ ls -ld
12drwx------. 2 ldapuser0 ldapuser0 62 Nov 22 01:30 .
13[ldapuser0@red ldapuser0]$ mount
14... 省略部分输出
15172.25.0.254:/rhome/ldapuser0 on /rhome/ldapuser0 type nfs4 (rw,relatime,vers=4.2,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=172.25.0.25,local_lock=none,addr=172.25.0.254)

查找文件

使用一条命令来完成。

find 命令可对查找到的内容执行命令。

但以防有可能出现的问题 ( 指 cp 将查找到的内容写进文件而非目录 ),先将目标目录建立起来:

1$ mkdir /root/findfiles

执行 find 命令:

1find /etc/ -size +5M -type f -exec cp {} /root/findfiles \;

这条命令需要详细解释。

-size 参数代表查找筛选条件为文件大小。 +5M 代表大于 5M 其他类似参数有 -name (查找文件名), -iname (查找文件名并忽略大小写) -type (查找文件类型)等,一共有二三十种。

-type f 代表查找一般文件

-exec 命令代表对查找到的文件作为后面的命令参数执行。

其中 {} 代表被查找到的文件,命令结束需要加 ; 结尾,为防止歧义需要对 ; 进行转义,因此加 \;

建议阅读资料:Linux Find 命令精通指南

查找字符串

查看 /etc/man_db.conf 文件下带 sbin 字符串的所有行,将查找结果存到 /root/out.txt

1cat /etc/man_db.conf | grep sbin > /root/out.txt

创建归档

根据题意,创建一个名为backup.tar.bz2的归档,使用bzip2进行压缩,压缩包内含有 /usr/local 的内容

1tar -cjvf /root/backup.tar.bz2 /usr/local/

注:

没有打包压缩命令的需要安装bzip和tar命令

1yum -y install tar bzip2

配置容器服务

为容器配置持久存储

其实这两道题本质是一道题,怕不怕。

首先,我怀疑实验环境根本没配好,部署 Registry 居然没有给做信任自签名证书 …… 嘛反正也不是不能做就是了。

装容器运行时:

1$ dnf module install container-tools
2# 也许只装 podman 也可以
3$ dnf install podman

先配置 log,方法为新建 /var/log/journal 目录:

1$ mkdir -p /var/log/journal
2$ chown root:systemd-journal /var/log/journal
3$ chmod 2775 /var/log/journal
4$ systemctl restart systemd-journald

题目要求容器以 rootless 运行,这时候如果使用 SSH 登录先登出,使用题目需求的 tammy 账号登录:

1# 在 Server 中
2$ ssh tammy@red

首先 Pull 镜像下来,因为没有信任自签名证书,加参数。

1$ podman pull registry.lab.example.com/nginx --tls-verify=false

如果可以直接 Pull 容器则很简单,但如果需要登录的话,在没有信任证书的情况下则需要修改配置文件了。

/etc/containers/registries.conf ,理论上只要在 registries.insecure 里增加域名即可达到目的,但也可顺便增加搜索的容器仓库。

1[registries.search]
2registries = ['registry.lab.example.com','registry.access.redhat.com', 'registry.redhat.io', 'docker.io', 'quay.io']
3
4[registries.insecure]
5registries = ['registry.lab.example.com']

之后登录容器仓库:

1$ podman login registry.lab.example.com

运行容器,按照题目要求把该写的参数一次性写上:

1$ mkdir /home/tammy/container_logserver
2$ podman run -d --name logserver \
3 -v /home/tammy/container_logserver:/usr/share/nginx/html \
4 registry.lab.example.com/nginx

生成 systemd 服务,停止容器并从 systemd 启动

1$ mkdir -p /home/tammy/.config/systemd/user
2$ podman generate systemd logserver > container-logserver.service
3$ mv container-logserver.service ~/.config/systemd/user
4$ systemctl --user daemon-reload
5$ podman stop logserver
6$ systemctl --user enable --now container-logserver

拷贝一下日志文件:

1$ su -
2$ usermod -aG wheel tammy
3$ logout
4$ sudo find /var/log/journal -name *.journal -exec cp -rv {} /home/tammy/container_logserver \;
5$ systemctl --user restart container-logserver

最后可以再确认一下容器守护服务状态:

1systemctl --user status container-logserver

确保服务能开机自动启动而不是需要登录对应用户才能启动:

参考 ArchWiki:Systemd/User ( 简体中文 )

1$ loginctl enable-linger tammy

保险期间,加一条 crontab:

实际 reboot 后可能并不能开机自启动,lingering 失效的情况是有可能发生的

1$ crontab -e -u tammy
2
3# 加入:
4
5@reboot systemctl --user start container-logserver.service

Blue

设置 root 密码

重启虚拟机

进入到如下界面按 键,之后按 e

e 键后,找到 linux 这一行,将原来的 ro 修改为 rw ,再手动添加空格 rd.break

ro 代表只读,rw 代表可读可写

因为等会会修改root密码,我们需要对计算机有写权限

添加 rd.break 的作用是防止计算机正常启动系统,加 rd.break 可以让 Linux 进入救援模式

修改完成后,按 Ctrl+x 启动系统并进入救援模式

读取操作系统的根分区数据,修改密码

1switch_root:/# chroot /sysroot # 切换根目录,linux系统的所有资料都在sysroot目录下,我们需要先切换到该目录
1sh-4.4# passwd root # 修改root密码,也可以修改其他任何用户的密码
2New password:
3Retype new password: 
1sh-4.4# touch /.autorelabel # 在根目录下创建隐藏文件.autorelabel文件

这一步为了刷新 SELinux 标签,否则无法进入系统

1sh-4.4# exit
2switch_root:/# exit

计算机自动重启,重启计算机后,正常进入操作系统,输入新配置的密码即可。

配置网络地址

配置默认软件仓库

调整逻辑卷大小

 1[root@blue ~]# lsblk     # 查看现有分区状态
 2NAME          MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
 3sr0            11:0    1 1024M  0 rom  
 4vda           252:0    0   50G  0 disk 
 5|-vda1        252:1    0    1G  0 part /boot
 6`-vda2        252:2    0   49G  0 part 
 7  |-rhel-root 253:0    0 46.9G  0 lvm  /
 8  `-rhel-swap 253:1    0  2.2G  0 lvm  [SWAP]
 9vdb           252:16   0   10G  0 disk 
10`-vdb1        252:17   0  200M  0 part      # vdb1 只有200M,需要对逻辑卷扩容
11  `-test-vo   253:2    0  196M  0 lvm  /vo  # 有一个196M大小的逻辑卷
12vdc           252:32   0   10G  0 disk
13
14[root@blue ~]# fdisk /dev/vdb  # 在 /dev/vdb 创建新分区
15
16Command (m for help): n    
17Partition type
18   p   primary (1 primary, 0 extended, 3 free)
19   e   extended (container for logical partitions)
20Select (default p): p
21Partition number (2-4, default 2): 
22First sector (411648-20971519, default 411648): 
23Last sector, +sectors or +size{K,M,G,T,P} (411648-20971519, default 20971519):^[+200M  # 创建200M大小分区
24
25Created a new partition 2 of type 'Linux' and of size 200 MiB.
26
27Command (m for help): w  # 写入分区表
28The partition table has been altered.
29Syncing disks.
30
31[root@blue ~]# vgextend /dev/test /dev/vdb2  # 将新分区加入卷组
32  Physical volume "/dev/vdb2" successfully created.
33  Volume group "test" successfully extended
34  
35[root@blue ~]# lvextend -L 300M /dev/test/vo # 对逻辑卷进行扩容
36Size of logical volume test/vo changed from 196.00 MiB (49 extents) to 300.00 MiB (75 extents).
37Logical volume test/vo successfully resized.
38  
39[root@blue ~]# df -h # 查看当前分区挂载点大小,现在还未刷新
40Filesystem             Size  Used Avail Use% Mounted on
41devtmpfs               473M     0  473M   0% /dev
42tmpfs                  490M     0  490M   0% /dev/shm
43tmpfs                  490M  6.7M  483M   2% /run
44tmpfs                  490M     0  490M   0% /sys/fs/cgroup
45/dev/mapper/rhel-root   47G  1.7G   46G   4% /
46/dev/vda1             1014M  160M  855M  16% /boot
47/dev/mapper/test-vo    191M   12M  180M   6% /vo
48tmpfs                   98M     0   98M   0% /run/user/0
49
50[root@blue ~]# xfs_growfs /vo # 进行 xfs 动态扩容
51meta-data=/dev/mapper/test-vo    isize=512    agcount=4, agsize=12544 blks
52         =                       sectsz=512   attr=2, projid32bit=1
53         =                       crc=1        finobt=1, sparse=1, rmapbt=0
54         =                       reflink=1
55data     =                       bsize=4096   blocks=50176, imaxpct=25
56         =                       sunit=0      swidth=0 blks
57naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
58log      =internal log           bsize=4096   blocks=1368, version=2
59         =                       sectsz=512   sunit=0 blks, lazy-count=1
60realtime =none                   extsz=4096   blocks=0, rtextents=0
61data blocks changed from 50176 to 76800
62
63[root@blue ~]# df -h # 逻辑卷已扩容
64Filesystem             Size  Used Avail Use% Mounted on
65devtmpfs               473M     0  473M   0% /dev
66tmpfs                  490M     0  490M   0% /dev/shm
67tmpfs                  490M  6.7M  483M   2% /run
68tmpfs                  490M     0  490M   0% /sys/fs/cgroup
69/dev/mapper/rhel-root   47G  1.7G   46G   4% /
70/dev/vda1             1014M  160M  855M  16% /boot
71/dev/mapper/test-vo    295M   13M  283M   5% /vo
72tmpfs                   98M     0   98M   0% /run/user/0

添加交换分区

1# fdisk /dev/vdb
2Command (m for help): n
3Select (default p): p
4Partition number(3-4, default 3): 直接回车
5First sector (2048-......, default 2048): 直接回车
6Last sector( ... ...) : +512M
7Command (m for help): w
8# mkswap /dev/vdb3                   # 把vdb3分区格式化为交换分区
9# vim /etc/fstab                    # 修改文件实现交换分区的永久挂载

默认vim会进入命令模式,需要按i键进入编辑模式,使用方向键到文件末尾添加如下内容:

1/dev/vdb3 swap swap defaults 0 0

编辑完成后,按ESC键回到命令模式,输入:wq保存退出

1# swapon /dev/vdb3  # 激活交换分区
2# mount -a         # 读取/etc/fstab挂载交换分区
3# free -m          # 查看效果

创建逻辑卷

为支持 vfat 格式,需安装软件包

1$ yum install dosfstools

使用fdisk命令新建一个分区

1# fdisk /dev/vdb
2Command (m for help): n
3Select (default p): p
4Partition number(3-4, default 3): 直接回车
5First sector (2048-......, default 2048): 直接回车
6Last sector( ... ...) : +2G
7Command (m for help): w

使用vgcreate命令创建VG,创建之后使用vgs命令查看是否成功

1# vgcreate -s 16M myvg /dev/vdb3

使用lvcreate 命令 创建一个大小为50个扩展单元的逻辑卷mylv

1$ lvcreate -l 50 -n mylv myvg

使用 vfat 文件系统将逻辑卷 mylv 格式化

1mkfs.vfat /dev/myvg/mylv 

此逻辑卷应当在系统启动时自动挂载到 /mnt/mydata 目录

使用 vim /etc/fstab 进入到配置文件

在最后输入 如下图

:wq 保存退出

创建 VDO 卷

安装软件包 vdo

1# yum -y install vdo
2# systemctl enable --now vdo

创建 VDO

此VDO卷使用xfs文件系统格式化

在系统启动是自动挂载到/vblock目录下

使用 vim /etc/fstab 命令打开配置文件,在最后输入如下图

配置系统调优

如下图

本文由潘潇,张一楠,赵天洋,韩嘉岐共同写作。本文采用知识共享署名-相同方式共享 4.0 国际许可协议进行许可,转载时需署名。