【云计算】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 小时前
银河麒麟高级服务器操作系统【双网卡绑定之bond0】操作方法
linux·运维·服务器·网络·经验分享
无名3874 小时前
FusionPBX Debian 12 安装
运维·debian·通信
MonkeyKing_sunyuhua5 小时前
国内Dockerfile的配置,提高打包速度
linux·运维·网络
盛世宏博智慧档案5 小时前
数据追溯 + 异常预警:机柜温湿度以太网变送器应用实践方案
linux·服务器·网络
leandzgc5 小时前
Linux动态存储管理的逻辑卷使用示例
linux·运维·服务器·逻辑卷·linux动态存储管理
Lethehong5 小时前
openEuler的系统监控:高效运维管理
运维
添加shujuqudong1如果未回复6 小时前
DEGWO-BP算法:基于差分灰狼优化的BP神经网络数据回归预测
云计算
Jurio.6 小时前
Python Ray 分布式计算应用
linux·开发语言·python·深度学习·机器学习
潮流coder6 小时前
ssh公钥 key生成
运维·ssh
守城小轩6 小时前
基于Chrome140的Reddit账号自动化(关键词浏览)——运行脚本(三)
运维·自动化