一、环境准备
1.开启一台虚拟机,以root用户登录

课程回顾:
1.如何查看当前系统SELinux运行模式?
getenforce

2.如何禁用SELinux?
/etc/selinux/config
需要重新启动操作系统

3.防护墙常见的区域有哪些?
public trusted block drop

4.如何统计/root目录下有多少文件?
find /root -type f | wc -l

5.yum客户端配置文件放在什么路径下?具体都有哪些字段?
/etc/yum.repos.d/*.repo
[] name baseurl enabled gpgcheck

6.周期性计划日志文件存放在哪里?
/var/log/cron

7.vim文本编辑器中如何复制以及粘贴?
yy p

8.构建Web服务器的软件有哪些?
httpd Nginx tomcat

9.启动vsftpd服务命令是什么?
systemctl restart vsftpd

10.小张在使用Yum安装软件时无法使用,可能的原因有哪些?
配置文件书写错误、没有挂载、其他错误文件的影响

11.仅拒绝harry用户访问/tmp目录如何实现?
setfacl -m u:harry:— /tmp

##########################################################################
二、服务管理
•Linux系统和服务管理器
–是内核引导之后加载的第一个初始化进程(PID=1)
–负责掌控整个Linux的运行/服务资源组合

•一个更高效的系统&服务管理器
–开机服务并行启动,各系统服务间的精确依赖
–配置目录:/etc/systemd/system/
–服务目录:/lib/systemd/system/
–主要管理工具:systemctl

•列出活动的系统服务
–systemctl -t service
•列出所有系统服务(包括不活动的)
–systemctl -t service --all

•对于服务的管理
systemctl restart 服务名 #重起服务
systemctl start 服务名 #开启服务
systemctl stop 服务名 #停止服务
systemctl status 服务名 #查看服务当前的状态

systemctl enable 服务名 #设置服务开机自启动
systemctl disable 服务名 #设置服务禁止开机自启动
systemctl is-enabled 服务名 #查看服务是否开机自启

虚拟机A
[root@A ~]# yum -y install httpd
[root@A ~]# systemctl restart httpd #重启服务
[root@A ~]# systemctl status httpd #查看服务的状态
[root@A ~]# systemctl enable httpd #设置开机自启动
[root@A ~]# systemctl is-enabled httpd #查看服务是否开机自启动

管理运行级别

RHEL6:运行级别

0:关机   
     1:单用户模式(基本功能的实现,破解Linux密码)
 2:多用户字符界面(不支持网络) 
 3:多用户字符界面(支持网络)服务器默认的运行级别  
 4:未定义
 5:图形界面    
 6:重起  

切换运行级别:init  数字

RHEL7:运行模式(运行级别)
字符模式:multi-user.target
图形模式:graphical.target

当前直接切换到字符模式
[root@svr7 /]# systemctl isolate multi-user.target #相当于原来的init 3

当前直接切换到图形模式
[root@svr7 /]# systemctl isolate graphical.target #相当于原来的init 5

查看每次开机默认进入模式
[root@svr7 /]# systemctl get-default

设置永久策略,每次开机自动进入multi-user.target
[root@svr7 /]# systemctl set-default multi-user.target
[root@svr7 /]# reboot

##########################################################################
三、Linux虚拟化平台

•virtualization 资源管理
–x个物理资源 --> y个逻辑资源
–实现程度:完全、部分、硬件辅助(CPU)

虚拟机A

1.关闭虚拟机,调整CPU参数,支持虚拟化

[root@A ~]# poweroff

双击“处理器”

指定构建镜像的版本tag_xml


指定构建镜像的版本tag_虚拟化_02

[root@A ~]# lscpu | grep vmx #查看CPU是否支持硬件辅助虚拟化

Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon nopl xtopology tsc_reliable nonstop_tsc eagerfpu pni pclmulqdq vmx ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch tpr_shadow vnmi ept vpid fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 invpcid rtm mpx rdseed adx smap clflushopt xsaveopt xsavec arat

[root@A ~]#

2.双击内存调整为6G

指定构建镜像的版本tag_bc_03


指定构建镜像的版本tag_bc_04

3.常见的虚拟化软件

指定构建镜像的版本tag_linux_05

4.安装KVM虚拟化所需软件包

–qemu-kvm:为 kvm 提供底层仿真支持
 –libvirt-daemon:libvirtd 守护进程,管理虚拟机
 –libvirt-client:用户端软件,提供客户端管理命令
 –libvirt-daemon-driver-qemu:libvirtd 连接 qemu 的驱动
 –virt-manager:图形管理工具[root@A ~]# yum -y install qemu-kvm
 [root@A ~]# yum -y install libvirt-daemon
 [root@A ~]# yum -y install libvirt-client
 [root@A ~]# yum -y install libvirt-daemon-driver-qemu
 [root@A ~]# yum -y install virt-manager5.关闭虚拟机A添加一块全新的50G硬盘,扩展

根分区的空间

[root@A ~]# poweroff

指定构建镜像的版本tag_虚拟化_06

[root@A ~]# lsblk
 [root@A ~]# fdisk /dev/sdb
 命令(输入 m 获取帮助):n
 Partition type:
 p primary (0 primary, 0 extended, 4 free)
 e extended
 Select (default p): #回车
 Using default response p
 分区号 (1-4,默认 1): #回车
 起始 扇区 (2048-104857599,默认为 2048): #回车
 将使用默认值 2048
 Last 扇区, +扇区 or +size{K,M,G} (2048-104857599,默认为 104857599): #回车
 将使用默认值 104857599
 分区 1 已设置为 Linux 类型,大小设为 50 GiB命令(输入 m 获取帮助):w
[root@A ~]# lsblk
扩展卷组与逻辑卷
 [root@A ~]# vgs
 [root@A ~]# vgextend centos /dev/sdb1
 [root@A ~]# vgs
 [root@A ~]# lvextend -L +40G /dev/centos/root[root@A ~]# lvs
 [root@A ~]# blkid /dev/centos/root
 [root@A ~]# xfs_growfs /dev/centos/root6.在虚拟机A中利用Linux平台的kvm安装虚拟机
 1)将光盘iso镜像文件传递到虚拟机A中
 [root@A ~]# mkdir /iso
 [root@A ~]# yum -y install lrzsz

指定构建镜像的版本tag_指定构建镜像的版本tag_07

[root@A ~]# du -sh /iso/
8.8G /iso/

2)安装虚拟机,操作系统的安装选择最小化安装
[root@A ~]# systemctl status libvirtd #虚拟化服务,默认开启的
Active: active (running)
[root@A ~]# virt-manager

指定构建镜像的版本tag_linux_08

指定构建镜像的版本tag_指定构建镜像的版本tag_09


指定构建镜像的版本tag_bc_10


指定构建镜像的版本tag_xml_11

指定构建镜像的版本tag_指定构建镜像的版本tag_12


指定构建镜像的版本tag_虚拟化_13


指定构建镜像的版本tag_指定构建镜像的版本tag_14

指定构建镜像的版本tag_xml_15

强制关机,修改显示器设置,让其识别键盘

指定构建镜像的版本tag_bc_16


指定构建镜像的版本tag_bc_17

光盘文件放入光驱设备

指定构建镜像的版本tag_bc_18


指定构建镜像的版本tag_指定构建镜像的版本tag_19


指定构建镜像的版本tag_linux_20


指定构建镜像的版本tag_xml_21


指定构建镜像的版本tag_指定构建镜像的版本tag_22


进行分区选择

指定构建镜像的版本tag_虚拟化_23


指定构建镜像的版本tag_xml_24


指定构建镜像的版本tag_虚拟化_25

删除根分区与swap分区,新建一个分区挂载点为根即可

指定构建镜像的版本tag_虚拟化_26


指定构建镜像的版本tag_指定构建镜像的版本tag_27


指定构建镜像的版本tag_虚拟化_28

指定构建镜像的版本tag_linux_29


指定构建镜像的版本tag_指定构建镜像的版本tag_30


指定构建镜像的版本tag_linux_31


指定构建镜像的版本tag_bc_32

指定构建镜像的版本tag_指定构建镜像的版本tag_33

指定构建镜像的版本tag_linux_34

##############################################################################
放弃虚拟机A的同学
可以在真机上新建一台VMware虚拟机,硬盘选择80G

指定构建镜像的版本tag_linux_35

修改CPU的参数,支持硬件辅助虚拟化

指定构建镜像的版本tag_xml_36

##############################################################################
四、管理Linux虚拟化平台

virsh命令工具介绍
 •提供管理各虚拟机的命令接口
 –支持交互模式,查看/创建/停止/关闭 … …
 –格式:virsh 控制指令 [虚拟机名称] [参数]•查看KVM节点(服务器)信息
 –virsh nodeinfo
 •列出虚拟机
 –virsh list [–all]
 •查看指定虚拟机的信息
 –virsh dominfo 虚拟机名称
 •运行|重启|关闭指定的虚拟机
 –virsh start|reboot|shutdown 虚拟机名称
 •强制关闭指定的虚拟机
 –virsh destroy 虚拟机名称
 •将指定的虚拟机设为开机自动运行
 –virsh autostart [–disable] 虚拟机名称•一台KVM虚拟机的组成
 –xml配置文件(虚拟机描述文件):定义虚拟机的名称、UUID、CPU、内存、虚拟磁盘、网卡等各种参数设置
 默认路径:/etc/libvirt/qemu
 虚拟机名字:nsd01
 虚拟机唯一标识:3eaaab1d-0def-4d7d-b767-97f91c64b1e5
 虚拟机的磁盘文件:
虚拟机网卡信息:
–磁盘镜像文件:保存虚拟机的操作系统及文档数据,镜像路径取决于xml配置文件中的定义
 默认路径:/var/lib/libvirt/images

•虚拟机的磁盘镜像文件格式

指定构建镜像的版本tag_xml_37


##############################################################################

五、虚拟机快速建立

1.创建新的磁盘镜像文件
 [root@A ~]# du -sh /var/lib/libvirt/images/nsd01.qcow2
 [root@A ~]# cp /var/lib/libvirt/images/nsd01.qcow2 /var/lib/libvirt/images/stu01.qcow2
 [root@A ~]# ls /var/lib/libvirt/images/2.新建xml配置文件
 [root@A ~]# cd /etc/libvirt/qemu/
 [root@A qemu]# cp nsd01.xml stu01.xml
 [root@A qemu]# vim stu01.xml虚拟机名字:stu01 #修改名字
 虚拟机唯一标识:3eaaab1d-0def-4d7d-b767-97f91c64b1e5 #整行删除
 虚拟机的磁盘文件:


 #修改磁盘镜像文件路径及名称虚拟机网卡信息:
 #整行删除[root@A ~]# uuidgen #补充:专门产生UUID命令
 ad19e611-6acc-46c1-b496-ee75cfe2386b3.导入虚拟机信息
 [root@A qemu]# virsh define /etc/libvirt/qemu/stu01.xml #导入虚拟机信息
 定义域 stu01(从 /etc/libvirt/qemu/stu01.xml)[root@A qemu]# virsh list --all #查看所有的虚拟机
 [root@A qemu]# virsh start stu01 #开启虚拟机stu01
 [root@A qemu]# virt-manager #开启图形化管理虚拟机软件常见错误:磁盘文件路径写错
 1.创建新的磁盘镜像文件
 [root@A /]# cd /var/lib/libvirt/images/
 [root@A images]# cp nsd01.qcow2 stu02.qcow2
 [root@A images]# ls2.新建xml配置文件
 [root@A images]# cd /etc/libvirt/qemu/
 [root@A qemu]# cp nsd01.xml stu02.xml
 [root@A qemu]# vim stu02.xml
 虚拟机名字:stu02
 虚拟机唯一标识:3eaaab1d-0def-4d7d-b767-97f91c64b1e5 #整行删除


虚拟机的磁盘文件:


#故意写错

虚拟机网卡信息:
 #整行删除3.导入虚拟机信息
 [root@A qemu]# virsh define /etc/libvirt/qemu/stu02.xml #导入虚拟机信息
 定义域 stu02(从 /etc/libvirt/qemu/stu02.xml)[root@A qemu]# virsh list --all
[root@A qemu]# virsh start stu02
 错误:开始域 stu02 失败
 错误:Cannot access storage file ‘/var/lib/libvirt/images/stu02haha.qcow2’ (as uid:107, gid:107): 没有那个文件或目录修复:
 [root@A qemu]# vim /etc/libvirt/qemu/stu02.xml
 虚拟机的磁盘文件:


 #修改正确[root@A qemu]# virsh define /etc/libvirt/qemu/stu02.xml #导入虚拟机信息
 [root@A qemu]# virsh start stu02 #开启虚拟机
 域 stu02 已开始
 [root@A qemu]# virsh list --all
 [root@A qemu]# virt-manager
 [root@A qemu]# virsh destroy stu02 #关闭虚拟机stu02
 域 stu02 被删除[root@A qemu]# virsh list --all
补充命令:
 [root@A /]# virsh list --all
 [root@A /]# virsh dumpxml nsd01 #查看虚拟机nsd01的xml配置文件信息新建虚拟机
 [root@A /]# cd /var/lib/libvirt/images/
 [root@A images]# cp nsd01.qcow2 stu03.qcow2
 [root@A /]# virsh edit nsd01 #多合一命令,相当于修改加上导入
 虚拟机名字:stu03
 虚拟机唯一标识:3eaaab1d-0def-4d7d-b767-97f91c64b1e5 #整行删除
 虚拟机的磁盘文件:


 #故意写错虚拟机网卡信息:


#整行删除

##############################################################################
六、快速建立虚拟机磁盘镜像文件

•Copy On Write(COW),写时复制
–直接映射原始盘(后端盘)的数据内容
–对前端盘的修改不回写到原始盘(后端盘)
–前端盘大小至少要和原始盘一样大小,最好前端盘比原始盘要大
–原始盘数据不允许修改

•qemu-img 通过 -b 选项复用指定后端盘
 –qemu-img create -f qcow2 -b 后端盘 前端盘 [指定前端盘大小]
 1.创建新的磁盘镜像文件
 [root@A /]# cd /var/lib/libvirt/images/
 [root@A images]# qemu-img create -f qcow2 -b nsd01.qcow2 abc01.qcow2 #根据原始盘nsd01.qcow2创建前端盘abc01.qcow2
 [root@A images]# ls
 [root@A images]# qemu-img info abc01.qcow2 #查看前端盘信息
 image: abc01.qcow2
 file format: qcow2
 virtual size: 3.0G (3221225472 bytes) #虚拟大小3G
 disk size: 196K #真正占用磁盘空间大小
 cluster_size: 65536
 backing file: nsd01.qcow2 #原始盘信息2.新建xml配置文件
 [root@A /]# virsh edit nsd01
 虚拟机名字:abc01 #修改名字
 虚拟机唯一标识:3eaaab1d-0def-4d7d-b767-97f91c64b1e5 #整行删除
 虚拟机的磁盘文件:




#修改磁盘镜像文件路径及名称

虚拟机网卡信息:
#整行删除

3.查看虚拟机信息

[root@A qemu]# virsh list --all #查看所有的虚拟机
 [root@A qemu]# virsh start abc01 #开启虚拟机abc01
 [root@A qemu]# virt-manager #开启图形化管理虚拟机软件
 [root@A /]# qemu-img info /var/lib/libvirt/images/abc01.qcow2