【云计算】KVM虚拟化部署

一、安装kvm

#在宿主机上安装kvm套件

bash 复制代码
yum groupinstall kvm
yum -y install qemu-kvm libvirt virt-install bridge-utils virt-manager

#加载kvm模块

bash 复制代码
modprobe kvm
modprobe kvm_intel #需要cpu支持虚拟化并在bios中开启该支持

#宿主机关闭NetworkManager服务

bash 复制代码
systemctl stop NetworkManager
systemctl disable NetworkManager

#启动libvirtd服务

bash 复制代码
systemctl start libvirtd
systemctl enable libvirtd

#创建网桥

#系统中还会有一个virbr0,是kvm自动管理的,是NAT模式会用到的网卡

#新建的网桥名称注意不要与virbr0冲突

bash 复制代码
brctl addbr br0
brctl addif br0 eno3
brctl stp br0 on

#修改配置文件

bash 复制代码
vim /etc/sysconfig/network-script/ifc-br0

DEVICE=br0
TYPE=Bridge
BOOTPROTO=static
DEFROUTE=yes
IPADDR=172.16.30.11  #写原服务器主网卡的ip
PREFIX=24
GATEWAY=173.16.30.1
DNS1=202.99.192.68
ONBOOT=yes

#修改宿主机网卡设置

bash 复制代码
vim /etc/sysconfig/network-script/ifc-eno3
#把IPADDR GATEWAY PREFIX DNS1四行去掉,添加以下行
BRIDGE=br0

#重启网络服务,试一下服务器网络是否正常,能否远程登录

bash 复制代码
systemctl restat network

#创建虚拟机

虚拟机运行之后不要轻易重启宿主机网络服务,会导致虚拟机网络中断,可能需要宿主机重启才能恢复(本地测试时存在的问题)

#命令行创建虚拟机

#创建40G大小的虚拟磁盘

bash 复制代码
dd if=/dev/zero  of=/kvm/kvm01.img  bs=2M count=20480

#生成10img,格式:qcow2,这种格式随容量大小变化,直到超过限定值。生成很快,文件也很小,拷贝很方便。

bash 复制代码
qemu-img create -f qcow2 centos.img  10G

#将光盘内容复制为本机上的iso文

bash 复制代码
dd if=/dev/cdrom of=/opt/rhel.iso bs=2048

#在虚拟磁盘上创建第一个虚拟机

bash 复制代码
virt-install -n kvm01 -r 2048 --vcpus=2 -no-acpi -f /kvm/kvm01.img  --vnc -c /opt/rhel.iso

#克隆虚拟机

bash 复制代码
virt-clone --connect=qemu:///system -o blog-web-1 -n blog-web-2 -f /var/lib/libvirt/images/blog-web-2.img 

#在克隆之前现行修改网卡信息(注释掉HAADDR,修改ip地址)

#使用已有的虚拟机配置文件创建新的虚拟机

bash 复制代码
virsh dumpxml node1 >/etc/libvirt/qemu/node2.xml
vi /etc/libvirt/qeme/node2.xml
virsh define /etc/libvirt/qemu/node2.xml
virsh start node2

#虚拟机管理

#配置文件

bash 复制代码
/etc/libvirt/qeum/node_name.xml
#编辑虚拟机配置文件
virsh edit node_name
#虚拟机开启vnc
<graphics type='vnc' port='-1' autoport='yes' listen='127.0.0.1' keymap='en-us'/>
   #port='-1' autoport='yes':port自动分配,监听回环网络(virt-manager管理需要listen='127.0.0.1'),无密码
改为
<graphics type='vnc' port='5904' autoport='no' listen='0.0.0.0' keymap='en-us' passwd='xiaobai'/>
#固定vnc管理端口5904,不自动分配,vnc密码xiaobai,监听所有网络

virsh list
virsh destroy #强行关闭
virsh create  /etc/libvirt/qeum/kvm01.xml  #使用配置文件启动虚拟机
virt-viwer  -c qemu///system  

#
push test

#可视化页面创建虚拟机

二、VNC部署

#服务器安装了桌面环境,可以使用vnc远程连接到服务器的桌面环境进行操作,即使服务器运行在字符模式下。

bash 复制代码
yum group install -y "GNOME Desktop"

#安装vnc-server

bash 复制代码
yum install tigervnc-server

#设置为服务

bash 复制代码
cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service

修改此服务配置 #以下为root用户的配置,每一个用户,都需要单独设置一个监听服务,且配置不同

bash 复制代码
vim /etc/systemd/system/vncserver@\:1.service

[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target

[Service]
Type=forking
User=root

#Clean any existing files in /tmp/.X11-unix environment
ExecStartPre=-/usr/bin/vncserver -kill %i
ExecStart=/sbin/runuser -l root -c "/usr/bin/vncserver %i"
PIDFile=/root/.vnc/%H%i.pid
ExecStop=-/usr/bin/vncserver -kill %i

[Install]
WantedBy=multi-user.target

#对于普通用户,加入用户名为:Amos

#下面举例进行设置: 首先一样复制一个server配置,改名为vncserver@:2.service

bash 复制代码
cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:2.service

#然后进行修改

bash 复制代码
vim /etc/systemd/system/vncserver@\:2.service

[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target

[Service]
Type=forking
User=root

Clean any existing files in /tmp/.X11-unix environment

ExecStartPre=-/usr/bin/vncserver -kill %i
ExecStart=/usr/bin/vncserver %i
PIDFile=/home/Amos/.vnc/%H%i.pid
ExecStop=-/usr/bin/vncserver -kill %i

[Install]
WantedBy=multi-user.target

#设置vncserver的连接密码:

vncpasswd

#不添加只读账号密码

#每个不用的系统用户,设置密码时,需要切换到该用户下,执行此命令

#如:su Amos 切换到Amos用户再执行上vncpasswd,设置密码

#启动服务,设置自启动

bash 复制代码
systemctl daemon-reload
systemctl start vncserver@\:1.service
systemctl enable vncserver@\:1.service

#若服务启动不了,删除vnc被锁文件再启动

bash 复制代码
vncserver
rm -rf /tmp.X1-lock
rm -rf /tmp/.X11-unix/X1

#windows跳板机下载vnc客户端,输入服务器内网IP:5901,访问服务器桌面

相关推荐
传而习乎4 分钟前
Linux:CentOS 7 解压 7zip 压缩的文件
linux·运维·centos
soulteary5 分钟前
突破内存限制:Mac Mini M2 服务器化实践指南
运维·服务器·redis·macos·arm·pika
我们的五年13 分钟前
【Linux课程学习】:进程程序替换,execl,execv,execlp,execvp,execve,execle,execvpe函数
linux·c++·学习
爱吃青椒不爱吃西红柿‍️33 分钟前
华为ASP与CSP是什么?
服务器·前端·数据库
IT果果日记35 分钟前
ubuntu 安装 conda
linux·ubuntu·conda
Python私教37 分钟前
ubuntu搭建k8s环境详细教程
linux·ubuntu·kubernetes
羑悻的小杀马特1 小时前
环境变量简介
linux
小陈phd1 小时前
Vscode LinuxC++环境配置
linux·c++·vscode
运维&陈同学1 小时前
【zookeeper01】消息队列与微服务之zookeeper工作原理
运维·分布式·微服务·zookeeper·云原生·架构·消息队列
是阿建吖!1 小时前
【Linux】进程状态
linux·运维