一、环境准备
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
双击“处理器”
[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
3.常见的虚拟化软件
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-manager
5.关闭虚拟机A添加一块全新的50G硬盘,扩展根分区的空间
[root@A ~]# poweroff
[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/root
6.在虚拟机A中利用Linux平台的kvm安装虚拟机
1)将光盘iso镜像文件传递到虚拟机A中
[root@A ~]# mkdir /iso
[root@A ~]# yum -y install lrzsz
[root@A ~]# du -sh /iso/
8.8G /iso/
2)安装虚拟机,操作系统的安装选择最小化安装
[root@A ~]# systemctl status libvirtd #虚拟化服务,默认开启的
Active: active (running)
[root@A ~]# virt-manager
强制关机,修改显示器设置,让其识别键盘
光盘文件放入光驱设备
进行分区选择
删除根分区与swap分区,新建一个分区挂载点为根即可
##############################################################################
放弃虚拟机A的同学
可以在真机上新建一台VMware虚拟机,硬盘选择80G
修改CPU的参数,支持硬件辅助虚拟化
##############################################################################
四、管理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
•虚拟机的磁盘镜像文件格式
##############################################################################
五、虚拟机快速建立
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-ee75cfe2386b
3.导入虚拟机信息
[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]# ls
2.新建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