Bootstrap

红帽认证—RHCSA

目录

考试须知

在mars.domain250.example.com上执行以下任务

一、配置mars网络

二、配置系统使用默认存储库

三、调试SELINUX

四、创建用户账户

五、配置cron任务

六、创建共享目录

七、配置NTP

八、配置autofs

九、配置 /var/tmp/fstab 权限

十、配置用户账户

十一、查找文件

十二、查找字符串

十三、创建存档

十四、编写脚本

十五、编写脚本

十六、设定sysmgrs组成员sudo不需要密码

十七、配置密码策略

十八、配置登录欢迎语

十九、配置umask

二十、变量与命令

最后三遍sync,并重启检查是否能正常进系统。

二十一、利用注册表服务器的镜像搭建容器

二十二、配置容器持久化存储

在 venus.domain250.example.com 上执行以下任务

一、设置root密码

二、配置系统使用默认存储库

三、调整逻辑卷大小

四、添加交换分区

五、创建逻辑卷

六、创建VDO卷

七、配置系统调优

最后三遍sync,并重启检查是否能正常进系统。


考试须知

系统IP
mars.domain250.example.com172.25.250.100
venus.domain250.example.com172.25.250.200

 mars的根密码为flectrag

系统会在重新引导后进行评测,实施的所有配置和服务在重新引导后要仍然保留。服务必须在无人干预的情况下启动。在无法引导或无法进行无人干预引导的系统上完成的所有操作将为零分。

在mars.domain250.example.com上执行以下任务

一、配置mars网络

  • 主机名:mars.domain250.example.com

  • IP 地址:172.25.250.100

  • 子网掩码:255.255.255.0

  • 网关:172.25.250.254

答案:

进入mars的console界面

 命令

显示所有连接

nmcli connection show

 若存在网卡,则

nmcli connection modify Wired\ connection\ 1 ipv4.addresses 172.25.250.100/24 ipv4.gateway 172.25.250.254 ipv4.dns 172.25.250.254 ipv4.method manual connection.autoconnect yes

若不存在网卡,则

(tab键自动补全提示)

nmcli connection add ifname enp1s0 type ethernet con-name enp1s0 ipv4.addresses 172.25.250.100/24 ipv4.gateway 172.25.250.254 ipv4.dns 172.25.250.254 ipv4.method manual connection.autoconnect yes

重新加载网卡

nmcli connection reload

激活网卡

nmcli connection up Wired\ connection\ 1 或 nmcli connection up en1s0

设置主机名

hostnamectl set-hostname mars.domain250.example.com

刷新

bash

二、配置系统使用默认存储库

YUM 存储库已可以从 http://content/rhel8.0/x86_64/dvd/BaseOS 和 http://content/rhel8.0/x86_64/dvd/AppStream 使用配置您的系统,以将这些位置用作默认存储库。

答案:

cd /etc/yum.repos.d/

vi mars.repo

[BaseOS]
name=BaseOS
baseurl=http://content/rhel8.0/x86_64/dvd/BaseOS
gpgcheck=0
enabled=1

[AppStream]
name=AppStream
baseurl=http://content/rhel8.0/x86_64/dvd/AppStream
gpgcheck=0
enabled=1

测试

yum makecache ;yum -y install vim

三、调试SELINUX

非标准端口 82 上运行的 Web 服务器在提供内容时遇到问题。根据需要调试并解决问题,使其满足以下条件:

  • 系统上的 Web 服务器能够提供 /var/www/html 中所有现有的 HTML 文件(注:不要删除或以其他方式改动现有的文件内容)

  • Web 服务器在端口 82 上提供此内容

  • Web 服务器在系统启动时自动启动

答案:

查看httpd服务端口号

vim /etc/httpd/conf/httpd.conf

 修改防火墙配置,开放http服务和82端口

firewall-cmd --add-service=http --permanent;firewall-cmd --add-port=82/tcp --permanent

重载防火墙

firewall-cmd --reload 

重启httpd服务

systemctl restart httpd

[root@mars ~]# systemctl restart httpd
Job for httpd.service failed because the control process exited with error code.
See "systemctl status httpd.service" and "journalctl -xe" for details.

 查看报错日志

journalctl -xe

 通过semange添加新端口

#帮助文档
[root@mars ~]# man semanage port | grep \#
       # semanage port -l
       # semanage port -a -t http_port_t -p tcp 81
       # semanage port -a -t ssh_port_t -p tcp 8991
[root@mars ~]# semanage port -a -t http_port_t -p tcp 82

修改file1安全上下文

#帮助文档
[root@mars html]# man semanage fcontext | grep \#
       # semanage fcontext -a -t httpd_sys_content_t "/web(/.*)?"
       # restorecon -R -v /web
       # semanage fcontext -a -e /home /home1
       # restorecon -R -v /home1
       # semanage fcontext -a -t home_root_t "/disk6"
       # semanage fcontext -a -e /home /disk6/home
       # restorecon -R -v /disk6
[root@mars html]# semanage fcontext -m -t httpd_sys_content_t "/var/www/html/file1"
[root@mars html]# restorecon -R -v /var/www/html/file1
Relabeled /var/www/html/file1 from unconfined_u:object_r:default_t:s0 to unconfined_u:object_r:httpd_sys_content_t:s0

重启httpd服务并设置开机自启

systemctl enable httpd; systemctl restart httpd

验证

curl http://localhost:82/file1

四、创建用户账户

  • 名为 sysmgrs 的组

  • 用户 natasha ,作为次要组从属于 sysmgrs

  • 用户 harry ,作为次要组还从属于 sysmgrs

  • 用户 sarah ,无权访问系统上的交互式 shell 且不是 sysmgrs 的成员

  • natasha 、 harry 和 sarah 的密码应当都是 flectrag

答案:

[root@mars ~]# groupadd sysmgrs
[root@mars ~]# useradd natasha -G sysmgrs
[root@mars ~]# useradd harry  -G sysmgrs
[root@mars ~]# useradd sarah -s /sbin/nologin
[root@mars ~]# echo flectrag | passwd --stdin natasha 
Changing password for user natasha.
passwd: all authentication tokens updated successfully.
[root@mars ~]# echo flectrag | passwd --stdin harry 
Changing password for user harry.
passwd: all authentication tokens updated successfully.
[root@mars ~]# echo flectrag | passwd --stdin sarah 
Changing password for user sarah.
passwd: all authentication tokens updated successfully.

五、配置cron任务

配置 cron 作业,该作业每隔 2 分钟运行并执行以下命令:

  • logger "EX200 in progress",以用户 natasha 身份运行

答案:

crontab -e -u natasha

*/2 * * * * logger "EX200 in progress"

重启crond服务并设置开机自启

systemctl enable crond;systemctl restart crond

六、创建共享目录

创建具有以下特征的协作目录 /home/managers :

  • /home/managers 的组用权是 sysmgrs

  • 目录应当可被 sysmgrs 的成员读取、写入和访问,但任何其他用户不具这些权限。(当然,root 用户有权访问系统上的所有文件和目录)

  • /home/managers 中创建的文件自动将组所有权设置到 sysmgrs 组

答案:

[root@mars ~]# mkdir /home/managers
[root@mars managers]# cd /home/
[root@mars home]# ll
total 0
drwx------. 2 devops  devops  62 Feb 24 22:00 devops
drwx------. 2 harry   harry   62 Feb 25 00:11 harry
drwxr-xr-x. 2 root    root     6 Feb 25 00:20 managers
drwx------. 2 natasha natasha 62 Feb 25 00:11 natasha
drwx------. 2 sarah   sarah   62 Feb 25 00:12 sarah
drwx------. 2 student student 62 May 22  2019 student
drwx------. 2 sysmgrs sysmgrs 62 Feb 25 00:11 sysmgrs
[root@mars home]# chgrp sysmgrs managers/
[root@mars home]# ll
total 0
drwx------. 2 devops  devops  62 Feb 24 22:00 devops
drwx------. 2 harry   harry   62 Feb 25 00:11 harry
drwxr-xr-x. 2 root    sysmgrs  6 Feb 25 00:20 managers
drwx------. 2 natasha natasha 62 Feb 25 00:11 natasha
drwx------. 2 sarah   sarah   62 Feb 25 00:12 sarah
drwx------. 2 student student 62 May 22  2019 student
drwx------. 2 sysmgrs sysmgrs 62 Feb 25 00:11 sysmgrs
[root@mars home]# chmod 2770 managers
[root@mars home]# ll
total 0
drwx------. 2 devops  devops  62 Feb 24 22:00 devops
drwx------. 2 harry   harry   62 Feb 25 00:11 harry
drwxrws---. 2 root    sysmgrs  6 Feb 25 00:20 managers
drwx------. 2 natasha natasha 62 Feb 25 00:11 natasha
drwx------. 2 sarah   sarah   62 Feb 25 00:12 sarah
drwx------. 2 student student 62 May 22  2019 student
drwx------. 2 sysmgrs sysmgrs 62 Feb 25 00:11 sysmgrs
[root@mars home]# cd managers/
[root@mars managers]# touch ceshi
[root@mars managers]# ll
total 0
-rw-r--r--. 1 root sysmgrs 0 Feb 25 00:21 ceshi



七、配置NTP

配置您的系统,使其成为 materials.example.com 的 NTP 客户端。(注:materials.example.com 是 classroom.example.com 的 DNS 别名)。

答案:

修改NTP配置文件

vim vim /etc/chrony.conf

server materials.example.com iburst

重启chronyd.service服务并设置开机自启

systemctl enable chronyd.service;systemctl restart chronyd.service

验证

chronyc sources -v

[root@mars ~]# chronyc sources -v
210 Number of sources = 1

  .-- Source mode  '^' = server, '=' = peer, '#' = local clock.
 / .- Source state '*' = current synced, '+' = combined , '-' = not combined,
| /   '?' = unreachable, 'x' = time may be in error, '~' = time too variable.
||                                                 .- xxxx [ yyyy ] +/- zzzz
||      Reachability register (octal) -.           |  xxxx = adjusted offset,
||      Log2(Polling interval) --.      |          |  yyyy = measured offset,
||                                \     |          |  zzzz = estimated error.
||                                 |    |           \
MS Name/IP address         Stratum Poll Reach LastRx Last sample               
===============================================================================
^* classroom.example.com         8   6    37    27  -3877ns[-2004us] +/-  999us

同步系统时间到硬件时间

hwclock -w

八、配置autofs

配置 autofs ,以按照如下所述自动挂载远程用户的主目录:

  • materials.example.com ( 172.25.254.254 ) NFS 导出 /rhome 到您的系统。此文件系统包含为用户 remoteuser1 预配置的主目录

  • remoteuser1 的主目录是 materials.example.com:/rhome/remoteuser1

  • remoteuser1 的主目录应自动挂载到本地 /rhome 下的 /rhome/remoteuser1

  • 主目录必须可供其用户写入

  • remoteuser1 的密码是 flectrag

答案:

[root@mars ~]# yum -y install autofs
[root@mars ~]# vim /etc/auto.master
/rhome  /etc/auto.misc
[root@mars ~]# vim /etc/auto.misc 
remoteuser1     -fstype=nfs,rw materials.example.com:/rhome/remoteuser1

重启autofs服务并设置开机自启

 systemctl enable autofs;systemctl restart autofs

验证用remoteuser1用户登录并创建文件

九、配置 /var/tmp/fstab 权限

将文件 /etc/fstab 复制到 /var/tmp/fstab 。配置 /var/tmp/fstab 的权限以满足如下条件:

  • 文件 /var/tmp/fstab 自 root 用户所有

  • 文件 /var/tmp/fstab 属于组 root

  • 文件 /var/tmp/fstab 应不能被任何人执行

  • 用户 natasha 能够读取和写入 /var/tmp/fstab

  • 用户 harry 无法写入或读取 /var/tmp/fstab

  • 所有其他用户(当前或未来)能够读取 /var/tmp/fstab

答案:

[root@mars ~]# cp /etc/fstab /var/tmp/fstab
[root@mars ~]# cd /var/tmp/
[root@mars tmp]# ll
total 4
-rw-r--r--. 1 root root 427 Feb 25 00:49 fstab
drwx------. 3 root root  17 Feb 25 00:34 systemd-private-14ba3ddb27ad483b8288d9fe2f7ae843-chronyd.service-XF0Vbb
drwx------. 3 root root  17 Feb 25 00:00 systemd-private-14ba3ddb27ad483b8288d9fe2f7ae843-httpd.service-Qlcv5G

查看帮助文档

man setfacl

[root@mars tmp]# setfacl -m u:natasha:rw /var/tmp/fstab 
[root@mars tmp]# setfacl -m u:harry:--- /var/tmp/fstab 
[root@mars tmp]# getfacl /var/tmp/fstab 
getfacl: Removing leading '/' from absolute path names
# file: var/tmp/fstab
# owner: root
# group: root
user::rw-
user:natasha:rw-
user:harry:---
group::r--
mask::rw-
other::r--

十、配置用户账户

配置用户 manalo ,其用户 ID 为 3533。此用户的密码应当为 flectrag

答案:

[root@mars tmp]# useradd -u 3533 manalo 
[root@mars tmp]# echo flectrag | passwd --stdin manalo 
Changing password for user manalo.
passwd: all authentication tokens updated successfully.

十一、查找文件

查找当 jacques 所有的所有文件并将其副本放入 /root/findfiles 目录。

答案:

[root@mars ~]# mkdir /root/findfiles
[root@mars ~]# find / -user jacques -exec cp -a {} /root/findfiles \;
find: ‘/proc/5141/task/5141/fd/7’: No such file or directory
find: ‘/proc/5141/task/5141/fdinfo/7’: No such file or directory
find: ‘/proc/5141/fd/8’: No such file or directory
find: ‘/proc/5141/fdinfo/8’: No such file or directory

十二、查找字符串

查找文件 /usr/share/xml/iso-codes/iso_639_3.xml 中包含字符串 ng 的所有行。将所有这些行的副本按原始顺序放在文件 /root/list 中。 /root/list 不得包含空行,且所有行必须是 /usr/share/xml/iso-codes/iso_639_3.xml 中原始行的确切副本。

答案:

 grep "ng" /usr/share/xml/iso-codes/iso_639_3.xml | grep -v ^$ > /root/list

十三、创建存档

创建一个名为 /root/backup.tar.gz 的 tar 存档,其应包含 /usr/local 的 tar 存档,其应包含 /usr/local 的内容。该 tar 存档必须使用 gzip 进行压缩。

答案:

tar -zcv -f /root/backup.tar.gz  /usr/local

十四、编写脚本

/usr/bin目录下创建一个repwis脚本,查找/usr目录下小于10M并且组ID不为root的文件,把查找到的文件结果拷贝到/root/myfiles文件夹内。

答案:

创建目录

mkdir /root/myfiles

编写脚本

cd /usr/bin;vim repwis

#!/bin/bash
for i in `awk -F ":" '{print $3}' /etc/group`
do
if [ 0 != $i ];then
        find /usr -size -10M -a -gid $i -exec cp -a {} /root/myfiles \;
fi
done

赋予执行权限

chmod +x repwis

执行脚本

./repwis

十五、编写脚本

创建一个名为myshell的脚本,该脚本放在/usr/local/bin下,该脚本用于查找/usr目录下所有大小在50k~10M之间且具有修改组ID权限的文件,将查找到的文件放置在/root/myfiles

答案:

创建目录

mkdir /root/myfiles

编写脚本

cd /usr/local/bin

vim myshell

#!/bin/bash
find /usr -type f -size +50k -a -size -10M -a -perm -2000 -exec cp -a {} /root/myfiles \;

赋予执行权限

chmod +x myshell

执行脚本

./myshell

十六、设定sysmgrs组成员sudo不需要密码

答案:

vim /etc/sudoers

十七、配置密码策略

创建新用户时,默认密码策略为20天后,密码会过期

答案:

vim /etc/login.defs

第25行把PASS_MAX_DAYS的值改为20

十八、配置登录欢迎语

登录到普通用户,提示一句·欢迎语“hello word!“或者用户登录显示欢迎语提示

答案:

登录后提示  echo  "hello word!" >> /etc/motd

登录前提示  echo "hello word!" >> /etc/issue

十九、配置umask

用户natasha默认创建文件权限为r--r--r--,默认创建目录权限为r-xr-xr-x

答案:

切换到natasha用户再进行操作

echo "umask 222" >> ~/.bashrc

source ~/.bashrc

二十、变量与命令

生成一个环境变量rhcsa,用户在调用这个变量时输出一句话“This is RHCSA!

自定义一个命令rhce,用户在使用这个命令时输出一句话“This is RHCE!

答案:

vim ~/.bashrc

export rhcsa='This is RHCSA!'

alias rhce='echo This is RHCE!'

最后三遍sync,并重启检查是否能正常进系统。

二十一、利用注册表服务器的镜像搭建容器

利用注册表服务器上的httpd镜像创建一个名为logserver的容器。

将其配置为systemd服务的形式运行,仅面向eldorado用户。

服务名应为container-logserver.service,此服务在重启系统后将自动启动。

注册表镜像服务器用户密码 admin/redhat321

二十二、配置容器持久化存储

配置systemd-journald服务,要求永久保留日志数据。

将/var/log/journal目录及任何子目录中的任何 *.journal 文件复制到/home/eldorado/container_journal中。

容器服务启动时自动将目录/home/eldorado/container_journal目录挂载到容器的/var/log/journal下。

推荐二十一、二十二一起答:

使用root登录到servera

ssh root@servera

修改systemd-journald的配置文件,设定日志为持久存储persistent

重启systemd-journald.service服务,并重启节点

systemctl restart systemd-journald.service

sync(三遍)

reboot

使用ssh登录eldorado到servera

ssh eldorado@servera

查看eldorado家目录下是否存在container_journal,不存在则创建

mkdir /home/eldorado/container_journal

复制文件

cp -a /var/log/journal/*/*.journal  /home/eldorado/container_journal

登录镜像仓库(不验证tls安全层协议)

podman login registry.lab.example.com  --tls-verify=false

下载镜像

podman pull registry.lab.example.com/rhel8/httpd-24  --tls-verify=false

查看镜像

podman images

创建并运行持久化存储的容器

podman run -itd --name -v logserver /home/eldorado/container_journal:/var/log/journal:Z 镜像ID

创建普通用户启动服务所用的目录,此目录名称固定且只能是 ~/.config/systemd/user

mkdir -p ~/.config/systemd/user

生成容器服务单元文件

podman generate systemd --name logserver --files

编辑生成的container-logserver.service文件

vim container-logserver.service

 重载该配置文件,并设置开启自启

systemctl --user daemon-reload

systemctl --user enable container-logerver.service

给eldorado用户启用逗留功能

loginctl enable-linger eldorado

验证

使用ssh登录root用户到servera,退出,再用ssh登录eldorado,查看容器是否在运行

ssh root@servera

ssh eldorado@servera

podman ps 

 进入本机~/container_journal目录并创建文件ceshi,然后进入容器的/var/log/journal目录,查看是否存在ceshi文件

cd ~/container_journal;touch ceshi;ls

podman exec -it logserver /bin/bash

cd /var/log/journal;ls

在 venus.domain250.example.com 上执行以下任务

一、设置root密码

将 venus 的 root 密码设置为 flectrag 。您需要获得系统访问权限才能进行此操作

答案:

进入venus的console界面

通过Ctrl+Alt+Del重启

在选择内核界面按e进入下面界面并在如下位置输入rd.break console=tty0

按Ctrl+x 执行

mount -o remount,rw /sysroot

chroot /sysroot

echo flectrag | passwd --stdin root

touch /.autorelabel

exit

reboot 

二、配置系统使用默认存储库

YUM 存储库已可以从 http://content/rhel8.0/x86_64/dvd/BaseOS 和 http://content/rhel8.0/x86_64/dvd/AppStream 使用配置您的系统,以将这些位置用作默认存储库

答案:

cd /etc/yum.repos.d/

vi venus.repo

[BaseOS]
name=BaseOS
baseurl=http://content/rhel8.0/x86_64/dvd/BaseOS
gpgcheck=0
enabled=1

[AppStream]
name=AppStream
baseurl=http://content/rhel8.0/x86_64/dvd/AppStream
gpgcheck=0
enabled=1

测试

yum makecache ;yum -y install vim

三、调整逻辑卷大小

将逻辑卷 vo 及其文件系统的大小调整到 230 MiB。确保文件系统内容保持不变。注:分区大小很少与请求的大小完全相同,因此可以接受范围为 217 MiB 到 243 MiB 的大小。

答案:

查看当前文件系统信息及lv、vg信息

 判断vg大小后及应该对lv进行增大或减小的操作后

lvextend -L 230M /dev/myvol/vo

文件系统同步

resize2fs /dev/myvol/vo

四、添加交换分区

向您的系统添加一个额外的交换分区 756MiB 。交换分区应在系统启动时自动挂载。不要删除或以任何方式改动系统上的任何现有交换分区。

答案:

判断各磁盘空间大小及后续题目限制(比如VDO卷题要求使用未分区的磁盘)

fdisk /dev/vdb

partprobe

使用mkswap格式化新分区

mkswap /dev/vdb2

写入配置文件(建议使用UUID)

 自动挂载

swapon -a

验证

通过前后free查看swap容量大小也可验证变化

原来

现在

五、创建逻辑卷

  • 逻辑卷取名为 qa ,属于 qagroup 卷组,大小为 60 个扩展块

  • qagroup 卷组中逻辑卷的扩展块大小应当为 16 MiB

  • 使用 ext3 文件系统格式化新逻辑卷。该逻辑卷应在系统启动时自动挂载到 /mnt/qa 下

答案:

判断各磁盘空间大小决定使用哪个磁盘分区及后续题目限制(比如VDO卷题要求使用未分区的磁盘)

[root@venus ~]# fdisk /dev/vdb

Welcome to fdisk (util-linux 2.32.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.


Command (m for help): n
Partition number (3-128, default 3): 
First sector (2549760-10485726, default 2549760): 
Last sector, +sectors or +size{K,M,G,T,P} (2549760-10485726, default 10485726): 

Created a new partition 3 of type 'Linux filesystem' and of size 3.8 GiB.

Command (m for help): w
The partition table has been altered.
Syncing disks.

[root@venus ~]# partprobe 
[root@venus ~]# lsblk 
NAME            MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
vda             252:0    0    16G  0 disk 
├─vda1          252:1    0    10G  0 part /
└─vda2          252:2    0   1.2G  0 part 
  └─vgroup-swap 253:0    0   512M  0 lvm  [SWAP]
vdb             252:16   0     5G  0 disk 
├─vdb1          252:17   0 487.8M  0 part 
│ └─myvol-vo    253:1    0   232M  0 lvm  /reports
├─vdb2          252:18   0   756M  0 part [SWAP]
└─vdb3          252:19   0   3.8G  0 part 
vdc             252:32   0    10G  0 disk 
[root@venus ~]# pvcreate /dev/vdb3 
  Physical volume "/dev/vdb3" successfully created.
[root@venus ~]# vgcreate -s 16M qagroup  /dev/vdb3 
  Volume group "qagroup" successfully created
[root@venus ~]# lvcreate -l 60 -n qa qagroup 
  Logical volume "qa" created.
[root@venus ~]# mkfs.ext3 /dev/qagroup/qa 
mke2fs 1.44.3 (10-July-2018)
Creating filesystem with 245760 4k blocks and 61440 inodes
Filesystem UUID: 93f3ed7b-2086-4d14-a5f5-6097fddf9cc3
Superblock backups stored on blocks: 
        32768, 98304, 163840, 229376

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done

[root@venus ~]# mkdir /mnt/qa
[root@venus ~]# vim /etc/fstab 

# 
# /etc/fstab
# Created by anaconda on Thu Apr  4 08:39:20 2019
#
# Accessible filesystems, by reference, are maintained under '/dev/disk/'.
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info.
#
# After editing this file, run 'systemctl daemon-reload' to update systemd
# units generated from this file.
#
UUID=884f47c9-a69d-4c5b-915d-6b7c9c74c923 /                       xfs     defaults        0 0
/dev/myvol/vo   /reports        ext4    defaults 1 2
/dev/vgroup/swap        none    swap    defaults 0 0
UUID=4fa8f3f7-9911-4d41-980d-f3bf3e2df8c9 swap swap defaults 0 0
UUID=93f3ed7b-2086-4d14-a5f5-6097fddf9cc3 /mnt/qa ext3 defaults 0 0  
[root@venus ~]# mount -a
[root@venus ~]# lsblk 
NAME            MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
vda             252:0    0    16G  0 disk 
├─vda1          252:1    0    10G  0 part /
└─vda2          252:2    0   1.2G  0 part 
  └─vgroup-swap 253:0    0   512M  0 lvm  [SWAP]
vdb             252:16   0     5G  0 disk 
├─vdb1          252:17   0 487.8M  0 part 
│ └─myvol-vo    253:1    0   232M  0 lvm  /reports
├─vdb2          252:18   0   756M  0 part [SWAP]
└─vdb3          252:19   0   3.8G  0 part 
  └─qagroup-qa  253:2    0   960M  0 lvm  /mnt/qa
vdc             252:32   0    10G  0 disk 

六、创建VDO卷

  • 使用未分区的磁盘

  • 该卷的名称为 vdough

  • 该卷的逻辑大小为 50G

  • 该卷使用 xfs 文件系统格式化

  • 该卷(在系统启动时)挂载到 /vbread 下

答案:

查找与VDO相关软件包并安装

[root@venus ~]# yum search vdo
Last metadata expiration check: 0:38:28 ago on Sat 25 Feb 2023 01:33:09 AM CST.
============================================================== Name Exactly Matched: vdo ==============================================================
vdo.x86_64 : Management tools for Virtual Data Optimizer
============================================================= Name & Summary Matched: vdo =============================================================
libblockdev-vdo.x86_64 : The vdo plugin for the libblockdev library
================================================================== Name Matched: vdo ==================================================================
kmod-kvdo.x86_64 : Kernel Modules for Virtual Data Optimizer
alsa-plugins-vdownmix.i686 : Downmixer to stereo plugin for ALSA
alsa-plugins-vdownmix.x86_64 : Downmixer to stereo plugin for ALSA
[root@venus ~]# yum -y install vdo.x86_64 kmod-kvdo.x86_64

查看帮助文档

[root@venus ~]# vdo create --name=vdough --device=/dev/vdc --vdoLogicalSize=50G 
Creating VDO vdough
Starting VDO vdough
Starting compression on VDO vdough
VDO instance 0 volume is ready at /dev/mapper/vdough
[root@venus ~]# lsblk 
NAME            MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
vda             252:0    0    16G  0 disk 
├─vda1          252:1    0    10G  0 part /
└─vda2          252:2    0   1.2G  0 part 
  └─vgroup-swap 253:0    0   512M  0 lvm  [SWAP]
vdb             252:16   0     5G  0 disk 
├─vdb1          252:17   0 487.8M  0 part 
│ └─myvol-vo    253:1    0   232M  0 lvm  /reports
├─vdb2          252:18   0   756M  0 part [SWAP]
└─vdb3          252:19   0   3.8G  0 part 
  └─qagroup-qa  253:2    0   960M  0 lvm  /mnt/qa
vdc             252:32   0    10G  0 disk 
└─vdough        253:3    0    50G  0 vdo  
[root@venus ~]# mkfs.xfs -K /dev/mapper/vdough 
meta-data=/dev/mapper/vdough     isize=512    agcount=4, agsize=3276800 blks
         =                       sectsz=4096  attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=0
         =                       reflink=1
data     =                       bsize=4096   blocks=13107200, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=6400, version=2
         =                       sectsz=4096  sunit=1 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

挂载信息写入配置文件

vim /etc/fstab

关键点  defaults,x-systemd,requires=vdo.service

创建挂载目录

mkdir /vbread

挂载并查看

[root@venus ~]# mount -a
[root@venus ~]# lsblk 
NAME            MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
vda             252:0    0    16G  0 disk 
├─vda1          252:1    0    10G  0 part /
└─vda2          252:2    0   1.2G  0 part 
  └─vgroup-swap 253:0    0   512M  0 lvm  [SWAP]
vdb             252:16   0     5G  0 disk 
├─vdb1          252:17   0 487.8M  0 part 
│ └─myvol-vo    253:1    0   232M  0 lvm  /reports
├─vdb2          252:18   0   756M  0 part [SWAP]
└─vdb3          252:19   0   3.8G  0 part 
  └─qagroup-qa  253:2    0   960M  0 lvm  /mnt/qa
vdc             252:32   0    10G  0 disk 
└─vdough        253:3    0    50G  0 vdo  /vbread

七、配置系统调优

为您的系统选择建议的 tuned 配置集并将它设为默认设置。

答案:

[root@venus ~]# tuned-adm recommend 
virtual-guest
[root@venus ~]# tuned-adm profile virtual-guest 
[root@venus ~]# tuned-adm active 
Current active profile: virtual-guest

最后三遍sync,并重启检查是否能正常进系统。

;