当前位置: 首页 > article >正文

【云计算】KVM虚拟化部署

一、安装kvm
#在宿主机上安装kvm套件
yum groupinstall kvm
yum -y install qemu-kvm libvirt virt-install bridge-utils virt-manager

#加载kvm模块
modprobe kvm
modprobe kvm_intel #需要cpu支持虚拟化并在bios中开启该支持

#宿主机关闭NetworkManager服务
systemctl stop NetworkManager
systemctl disable NetworkManager

#启动libvirtd服务
systemctl start libvirtd
systemctl enable libvirtd

#创建网桥
#系统中还会有一个virbr0,是kvm自动管理的,是NAT模式会用到的网卡
#新建的网桥名称注意不要与virbr0冲突
brctl addbr br0
brctl addif br0 eno3
brctl stp br0 on

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

#修改宿主机网卡设置
vim /etc/sysconfig/network-script/ifc-eno3
#把IPADDR GATEWAY PREFIX DNS1四行去掉
,添加以下行
BRIDGE=br0

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

systemctl restat network

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

#创建40G大小的虚拟磁盘
dd if=/dev/zero of=/kvm/kvm01.img bs=2M count=20480

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

#将光盘内容复制为本机上的iso文件
dd if=/dev/cdrom of=/opt/rhel.iso bs=2048

#在虚拟磁盘上创建第一个虚拟机
virt-install -n kvm01 -r 2048 --vcpus=2 -no-acpi -f /kvm/kvm01.img --vnc -c /opt/rhel.iso

#克隆虚拟机
virt-clone --connect=qemu:///system -o blog-web-1 -n blog-web-2 -f /var/lib/libvirt/images/blog-web-2.img

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

#使用已有的虚拟机配置文件创建新的虚拟机
virsh dumpxml node1 >/etc/libvirt/qemu/node2.xml
vi /etc/libvirt/qeme/node2.xml
virsh define /etc/libvirt/qemu/node2.xml
virsh start node2

#虚拟机管理

#配置文件
/etc/libvirt/qeum/node_name.xml
#编辑虚拟机配置文件
virsh edit node_name

#虚拟机开启vnc

#port=’-1’ autoport=‘yes’:port自动分配,监听回环网络(virt-manager管理需要listen=‘127.0.0.1’),无密码
改为

#固定vnc管理端口5904,不自动分配,vnc密码xiaobai,监听所有网络

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

push test
#可视化页面创建虚拟机

二、VNC部署
#服务器安装了桌面环境,可以使用vnc远程连接到服务器的桌面环境进行操作,即使服务器运行在字符模式下。
yum group install -y “GNOME Desktop”

#安装vnc-server
yum install tigervnc-server

#设置为服务
cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service

#修改此服务配置
#以下为root用户的配置,每一个用户,都需要单独设置一个监听服务,且配置不同
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
cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:2.service
#然后进行修改
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,设置密码

#启动服务,设置自启动
systemctl daemon-reload
systemctl start vncserver@:1.service
systemctl enable vncserver@:1.service

#若服务启动不了,删除vnc被锁文件再启动
vncserver
rm -rf /tmp.X1-lock
rm -rf /tmp/.X11-unix/X1

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


http://www.kler.cn/a/369822.html

相关文章:

  • tmp记录
  • 网盘资源查找工具---AI功能
  • Vue.js组件开发-如何实现带有搜索功能的下拉框
  • 使用云服务器自建Zotero同步的WebDAV服务教程
  • 硬件学习笔记--35 AD23的使用常规操作
  • IDEA工具下载、配置和Tomcat配置
  • Redis和MySQL如何保证数据一致性
  • SQLAlchemy 连接 dm
  • 基于Multisim的单双声道音频功率放大电路设计与仿真
  • 哈希及其封装实现unordermap和set
  • PSI-BLAST位点特异性矩阵PSSM和ProteinMPNN中氨基酸顺序映射
  • 华为OD机试真题---字符串摘要
  • 【含开题报告+文档+PPT+源码】基于SSM的旅游与自然保护平台开发与实现
  • 重工业数字化转型创新实践:某国家特大型钢铁企业如何快速落地基于实时数仓的数据分析平台
  • 开源模型应用落地-qwen模型小试-Qwen2.5-7B-Instruct-玩转ollama(一)
  • 【最新华为OD机试E卷-支持在线评测】机器人活动区域(200分)多语言题解-(Python/C/JavaScript/Java/Cpp)
  • 如何通过自动化有效地简化 Active Directory 操作?
  • Java基于微信小程序的童装商城的设计与实现,附源码+文档
  • 使用语言模型进行文本摘要的五个级别(llm)
  • 51单片机 复位电路
  • 解决Redis缓存穿透(缓存空对象、布隆过滤器)
  • k8s部署metallb实现service的LoadBalancer模式
  • 微信小程序地图功能开发:绘制多边形和标记点
  • kotlin等待异步任务完成
  • 100种算法【Python版】第18篇——Prim算法
  • 使用 `screen` + `nohup` 实现高效日志记录和多环境任务管理