一、基础知识简介

    虚拟化可以虚拟出来多个操作系统:每个操作系统之间是相互独立的,所以每个操作系统上所跑的应用自然是相互不影响的。

1、 kvm的虚拟化特性

    1)嵌入到linxu正式kernel(提高了兼容性)

    2)代码级资源调用(提高性能)

    3)虚拟机就是一个进程(内存易于管理)

    4)直接支持NUMA技术(提高扩展性)

    5)虽然被Redhat收购了,但是依然保持着开源发展模式,社区活跃

    6)更好的商业支持及服务保障

    7)Centos7较Centos6默认支持cpu热添加,内存的热添加,大页内存默认都是开启的

2、虚拟机基本操作学习

   生成kvm虚拟机:virt-install

   查看在运行的虚拟机:virsh list

   查看所有虚拟机:virsh list –all

   查看kvm虚拟机配置文件:virsh dumpxml name

   启动kvm虚拟机:virsh start name

   正常关机:virsh shutdown name

   非正常关机(相当于物理机直接拔掉电源):virsh destroy name

   删除:virsh undefine name(彻底删除,如果想找回需要备份/etc/libvirt/qemu的xml文件)

   根据配置文件定义虚拟机:virsh define file-name.xml

   挂起,终止:virsh suspend name

   恢复挂起状态:virsh resumed name

二、实战步骤

    实验环境:centos7

1、实验大纲图


linux实战---基于KVM虚拟化搭建LAMP_虚拟化

2、安装以下包

 yum -y install libvirt-daemon-kvm qemu-kvm virt-manager libvirt

linux实战---基于KVM虚拟化搭建LAMP_虚拟化_02

systemctl restart libvirtd   重启服务

linux实战---基于KVM虚拟化搭建LAMP_LAMP_03

3、创建http-fpm网桥

cd /etc/libvirt/qemu/networks/

linux实战---基于KVM虚拟化搭建LAMP_LAMP_04

cp default.xml httpfpm.xml
vim httpfpm.xml

linux实战---基于KVM虚拟化搭建LAMP_KVM_05

linux实战---基于KVM虚拟化搭建LAMP_虚拟化_06

virsh net-define /etc/libvirt/qemu/networks/httpfpm.xml
 virsh net-start httpfpm
virsh net-autostart httpfpm

4、创建php-mysql网桥

cp httpfpm.xml phpmysql.xml

linux实战---基于KVM虚拟化搭建LAMP_KVM_07

linux实战---基于KVM虚拟化搭建LAMP_KVM_08

virsh net-define /etc/libvirt/qemu/networks/phpmysql.xml   自定义
virsh net-start phpmysql      启动
virsh net-autostart phpmysql     自启动

linux实战---基于KVM虚拟化搭建LAMP_KVM_09

5、创建物理桥

nmcli connection add type bridge con-name br0 ifname br0

linux实战---基于KVM虚拟化搭建LAMP_虚拟化_10

nmcli connection modify br0 ipv4.method manual ipv4.addresses 172.18.254.39/16 ipv4.gateway 172.18.0.1 ipv4.dns 172.18.0.1

linux实战---基于KVM虚拟化搭建LAMP_虚拟化_11

nmcli c s   查看方案及网卡信息

linux实战---基于KVM虚拟化搭建LAMP_LAMP_12

nmcli connection up br0

linux实战---基于KVM虚拟化搭建LAMP_KVM_13

    再次查看

linux实战---基于KVM虚拟化搭建LAMP_LAMP_14

nmcli connection add type bridge-slave ifname ens33 master br0
nmcli connection up bridge-slave-ens33

linux实战---基于KVM虚拟化搭建LAMP_LAMP_15

    再次查看

linux实战---基于KVM虚拟化搭建LAMP_虚拟化_16

    以上问题的解决方案:重启 reboot

linux实战---基于KVM虚拟化搭建LAMP_KVM_17

6、创建虚拟磁盘文件

mkdir -pv /virtualmachines/centos7_base
qemu-img create -f qcow2 -o size=80G,preallocation=metadata,compat=1.1 /virtualmachines/centos7_base/centos7.img

linux实战---基于KVM虚拟化搭建LAMP_虚拟化_18

linux实战---基于KVM虚拟化搭建LAMP_KVM_19

linux实战---基于KVM虚拟化搭建LAMP_LAMP_20

linux实战---基于KVM虚拟化搭建LAMP_linux_21

7、挂载,或下载到本机

mount 172.18.0.1:/var/ftp/pub /mnt/

linux实战---基于KVM虚拟化搭建LAMP_KVM_22

8、安装centos7过程

virt-manager

linux实战---基于KVM虚拟化搭建LAMP_虚拟化_23

linux实战---基于KVM虚拟化搭建LAMP_KVM_24

linux实战---基于KVM虚拟化搭建LAMP_KVM_25

linux实战---基于KVM虚拟化搭建LAMP_linux_26

linux实战---基于KVM虚拟化搭建LAMP_KVM_27

linux实战---基于KVM虚拟化搭建LAMP_LAMP_28

linux实战---基于KVM虚拟化搭建LAMP_LAMP_29


linux实战---基于KVM虚拟化搭建LAMP_LAMP_30

linux实战---基于KVM虚拟化搭建LAMP_linux_31

linux实战---基于KVM虚拟化搭建LAMP_虚拟化_32

linux实战---基于KVM虚拟化搭建LAMP_linux_33

linux实战---基于KVM虚拟化搭建LAMP_linux_34

linux实战---基于KVM虚拟化搭建LAMP_虚拟化_35

linux实战---基于KVM虚拟化搭建LAMP_LAMP_36

linux实战---基于KVM虚拟化搭建LAMP_linux_37

linux实战---基于KVM虚拟化搭建LAMP_LAMP_38

linux实战---基于KVM虚拟化搭建LAMP_LAMP_39

linux实战---基于KVM虚拟化搭建LAMP_虚拟化_40

linux实战---基于KVM虚拟化搭建LAMP_LAMP_41

linux实战---基于KVM虚拟化搭建LAMP_虚拟化_42

linux实战---基于KVM虚拟化搭建LAMP_LAMP_43

linux实战---基于KVM虚拟化搭建LAMP_虚拟化_44

linux实战---基于KVM虚拟化搭建LAMP_虚拟化_45

9、配置模板机

linux实战---基于KVM虚拟化搭建LAMP_LAMP_46

ip a s

linux实战---基于KVM虚拟化搭建LAMP_linux_47

linux实战---基于KVM虚拟化搭建LAMP_KVM_48

linux实战---基于KVM虚拟化搭建LAMP_虚拟化_49

linux实战---基于KVM虚拟化搭建LAMP_linux_50

10、使用console连接centos7需要配置grub

vim /etc/default/grub

linux实战---基于KVM虚拟化搭建LAMP_KVM_51

linux实战---基于KVM虚拟化搭建LAMP_虚拟化_52

grub2-mkconfig > /boot/grub2/grub.cfg

linux实战---基于KVM虚拟化搭建LAMP_KVM_53

11、复制httpd模板机

mkdir -pv /virtualmachines/{httpd,php,mysql}

linux实战---基于KVM虚拟化搭建LAMP_KVM_54

linux实战---基于KVM虚拟化搭建LAMP_LAMP_55

   (具体情况具体分析。。。)

linux实战---基于KVM虚拟化搭建LAMP_虚拟化_56

cd /etc/libvirt/qemu/

linux实战---基于KVM虚拟化搭建LAMP_虚拟化_57

 cp centos7.5.xml httpd.xml
vim httpd.xml

linux实战---基于KVM虚拟化搭建LAMP_虚拟化_58

linux实战---基于KVM虚拟化搭建LAMP_LAMP_59

linux实战---基于KVM虚拟化搭建LAMP_虚拟化_60

linux实战---基于KVM虚拟化搭建LAMP_虚拟化_61

virsh define httpd.xml
virsh autostart httpd
virsh start httpd

linux实战---基于KVM虚拟化搭建LAMP_LAMP_62

    配置php的文件

linux实战---基于KVM虚拟化搭建LAMP_linux_63

linux实战---基于KVM虚拟化搭建LAMP_KVM_64

linux实战---基于KVM虚拟化搭建LAMP_LAMP_65

linux实战---基于KVM虚拟化搭建LAMP_LAMP_66

    配置mysql的文件

linux实战---基于KVM虚拟化搭建LAMP_虚拟化_67

linux实战---基于KVM虚拟化搭建LAMP_linux_68

linux实战---基于KVM虚拟化搭建LAMP_虚拟化_69

linux实战---基于KVM虚拟化搭建LAMP_LAMP_70

12、配置三台虚拟机的网卡信息

    PHP:

linux实战---基于KVM虚拟化搭建LAMP_KVM_71linux实战---基于KVM虚拟化搭建LAMP_LAMP_72

linux实战---基于KVM虚拟化搭建LAMP_KVM_71linux实战---基于KVM虚拟化搭建LAMP_LAMP_74

linux实战---基于KVM虚拟化搭建LAMP_linux_75

    MYSQL:

linux实战---基于KVM虚拟化搭建LAMP_KVM_76

linux实战---基于KVM虚拟化搭建LAMP_虚拟化_77

    HTTPD:

linux实战---基于KVM虚拟化搭建LAMP_linux_78

三、搭建LAMP

1、httpd虚拟机配置

linux实战---基于KVM虚拟化搭建LAMP_虚拟化_79

linux实战---基于KVM虚拟化搭建LAMP_KVM_80

linux实战---基于KVM虚拟化搭建LAMP_linux_81

linux实战---基于KVM虚拟化搭建LAMP_KVM_82

vim /etc/httpd/conf/httpd.conf

linux实战---基于KVM虚拟化搭建LAMP_linux_83

linux实战---基于KVM虚拟化搭建LAMP_linux_84

2、php虚拟机配置

linux实战---基于KVM虚拟化搭建LAMP_虚拟化_85

linux实战---基于KVM虚拟化搭建LAMP_虚拟化_86

    首先删除原本测试用的htdocmulu

linux实战---基于KVM虚拟化搭建LAMP_虚拟化_87

    将phpmysamin压缩包解压

linux实战---基于KVM虚拟化搭建LAMP_KVM_88

linux实战---基于KVM虚拟化搭建LAMP_虚拟化_89

    做一个超链接 连接到htdocs

linux实战---基于KVM虚拟化搭建LAMP_LAMP_90

linux实战---基于KVM虚拟化搭建LAMP_虚拟化_91

linux实战---基于KVM虚拟化搭建LAMP_KVM_92

linux实战---基于KVM虚拟化搭建LAMP_linux_93

linux实战---基于KVM虚拟化搭建LAMP_linux_94

    php配置完毕

3、mysql虚拟机配置

linux实战---基于KVM虚拟化搭建LAMP_LAMP_95

linux实战---基于KVM虚拟化搭建LAMP_虚拟化_96

linux实战---基于KVM虚拟化搭建LAMP_LAMP_97

linux实战---基于KVM虚拟化搭建LAMP_虚拟化_98

4、测试

linux实战---基于KVM虚拟化搭建LAMP_LAMP_99