人工智能操作系统的相关说明(机器人控制系统需使用实时操作系统)
847
2022-05-28
安装
前期准备
安装虚拟机软件
配置网络桥接
使用 virt-install 工具安装 guest 系统
安装
前期准备
安装虚拟机软件
配置网络桥接
使用 virt-install 工具安装 guest 系统
虚拟机配置文件
libvirtd 配置文件
查看 virsh 管理 qemu 虚拟机的信息
使用
查看所有虚拟机状态
查看指定虚拟机状态
手动启动虚拟机
手动关闭虚拟机
直接通过主机配置文档启动主机
关机虚拟机
重启虚拟机
手动挂起/恢复虚拟机
断电关闭虚拟机
设置随宿主启动(开机启动)
取消开机启动
删除虚拟机
导出(备份)虚拟机配置文件
编辑虚拟机配置文件
查看虚拟机磁盘信息
查看指定虚拟机使用磁盘
虚拟机迁移宿主物理服务器
获取虚机网卡接口
获取网卡实时信息
显示虚拟机的信息
获取虚拟机的UUID
获取虚拟机的ID
23、显示虚拟机的运行状态
编辑虚拟机的配置文件
virsh console连接虚机
为虚拟机添加一块qcow2磁盘
修改虚拟机内存及CPU大小
快照管理
虚拟机克隆
从本地虚拟机直接克隆
通过复制配置文件和硬盘文件克隆
安装
前期准备
确定机器有 VT
不知道芯片的生产厂商则输入:
egrep '(vmx|svm)' /proc/cpuinfo
如果flags: 里有 vmx 或者 svm 就说明支持 VT;如果没有任何的输出,说明你的 cpu 不支持,将无法成功安装 KVM 虚拟机。
2. 确保BIOS里开启VT:
Intel(R) Virtualization Tech [Enabled]
如有必要,还需在 BIOS 中开启 VT
安装虚拟机软件
安装相关的软件包
yum search kvm #使用search查寻KVM的软件包 yum install #kvm的软件包
也可通过这两种方法来安装,在 ISO 镜像中的 rpm 包和 yum 来
安装 KVM 有两种方式:
通过 YUM 安装,在有 INTERNET 接入的地方可以使用,使用方法比较简单。
安装 KVM 和 virtinst(一个创建虚拟机的工 具),我们运行
yum install kvm kmod-kvm qemu libvirt python-virtinst
然后重新启动系统:
Reboot
通过 CentOS 自带光盘中的 RPM 包进行安装
安装 KVM 需要以下一些包:
kmod-kvm x86_64 83-164.el5_5.15 kvm x86_64 83-164.el5_5.15 libvirt i386 0.6.3-33.el5_5.1 libvirt x86_64 0.6.3-33.el5_5.1 python-virtinst noarch 0.400.3-9.el5 qemu x86_64 0.9.0-4 所需的依存包为: bridge-utils x86_64 1.1-2 celt051 x86_64 0.5.1.3-0.el5 e4fsprogs-libs i386 1.41.9-3.el5 e4fsprogs-libs x86_64 1.41.9-3.el5 etherboot-zroms-kvm x86_64 5.4.4-13.el5.centos iscsi-initiator-utils x86_64 6.2.0.871-0.16.el5 libvirt-python x86_64 0.6.3-33.el5_5.1 log4cpp x86_64 1.0-9.el5 qcairo x86_64 1.8.7.1-3.el5 qffmpeg-libs x86_64 0.4.9-0.16.20080908.el5_5 qpixman x86_64 0.13.3-4.el5 qspice-libs x86_64 0.3.0-54.el5_5.1 xen-libs i386 3.0.3-105.el5_5.5 xen-libs x86_64 3.0.3-105.el5_5.5 xz-libs i386 4.999.9-0.3.beta.20091007git.el5 xz-libs x86_64 4.999.9-0.3.beta.20091007git.el5
将其放在一个文件夹内,使用 rpm –ivh *.rpm 命令来进行安装。或者使用 rpm -i ( or --install) options file1.rpm file2.rpm... fileN.rpm 将每个 RPM 包列出进行安装。
验证 KVM 是否安装完成
使用下列命令检查 KVM 是否成功安装
virsh -c qemu:///system list
将会显示如下结果:
[root@server1 ~]# virsh -c qemu:///system list Id Name State
软件包安装完毕后,加载 kvm 模块
modprobe kvm
检查模块是否加载成功,执行如下命令:
lsmod |grep kvm
如果显示两行,说明模块正确加载:
kvm_intel 47790 0 kvm 300762 1 kvm_intel
如果只显示一行,请检查
cpu 是否支持 VT 技术
bios 中是否将 cpu 的 VT 开启
接下来配置桥接网卡,网上有现成的脚本可以使用,这个是我在之前测试convirt时发现的,实际上是convirt的环境配置工具。
先将工具包下载下来下了(安装kvm系统可以上网)
wget --no-cache http://www.convirture.com/downloads/convirture-tools/2.0.1/convirture-tools-2.0.1.tar.gz
然后解压软件包:
tar zxvf convirture-tools-2.0.1.tar.gz #(这个一定要放到root目录里才行) /root/convirture-tools/install/managed_server/scripts/convirt-tool --bridge setup
执行完上述命令后,会自动将桥接网卡配置好,跑桥接自动好。
启动服务
/etc/init.d/libvirt-guests start /etc/init.d/libvirtd start
到此,kvm 虚拟化环境就全部配置完毕了
libvirt:使用最多的KVM虚拟化管理工具和应用程序接口,即通过 libvirt 调用 KVM 创建虚拟机,libvirt 是 KVM 通用的访问 API,其不但能管理 KVM,还能管理 VMware、Xen、Hyper-V、virtualBox 等虚拟化方案。
virsh:是一个常用的管理 KVM 虚拟化的命令行工具,常用语管理运行在单个宿主机上的虚拟机,virsh是一个使用C语言编写调用 libvirt API 的虚拟化管理命令行工具。
virt-manager:一个虚拟化管理图形软件,其底层也是调用 libvirt API 来完成对虚拟机的操作,包括虚拟机的创建、删除、启动、停止以及一些简单的监控功能等。
配置网络桥接
进入目录 /etc/sysconfig/network-scripts,复制一份原有的 ifcfg-eth0 为 ifcfg-br0
cp ifcfg-eth0 ifcfg-br0
修改 ifcfg-br0,内容如下:
DEVICE="br0" BOOTPROTO=static ONBOOT="yes" TYPE="Bridge" IPADDR=192.168.31.60 GATEWAY=192.168.31.1 NETMASK=255.255.255.0 DEFROUTE=yes
IPADDR、GATEWAY、NETMASK 根据自己的实际情况修改。
修改 ifcfg-eth0, 内容如下:
DEVICE="eth0" BOOTPROTO=none NM_CONTROLLED="no" ONBOOT="yes" TYPE="Ethernet" BRIDGE="br0" HWADDR=F8:DB:88:FF:99:E3 DEFROUTE=yes IPV4_FAILURE_FATAL=yes NAME="System eth0"
重启网络服务即可。
/etc/init.d/network restart
如果出现问题,关闭 NetworkManager 后重试。
chkconfig NetworkManager off service NetworkManager stop
使用 virt-install 工具安装 guest 系统
创建硬盘映像文件
使用 qemu-img 命令创建
qemu-img create -f raw /home/kvm_data/centos7.82C8G.img 100G
或使用 dd 命令创建
dd bs=1M count=8096 if=/dev/zero of=/var/lib/libvirt/images/test.img
qemu-img 是创建是文件格式是稀疏文件,优点是速度超快,由于是稀疏文件,性能可能会比第二种略差,通过如下命令查看详情
qemu-img info /var/lib/libvirt/images/test.img
输出为:注意其中 disk size 为 0
image: test.img file format: raw virtual size: 8.0G (8589934592 bytes) disk size: 0
通过iso文件安装系统
界面安装:需要通过 vnc 连接上去。
virt-install --name=vserver1 --ram 4096 --vcpus=2 --disk path=/home/kvm_data/centos7.8.img,size=100 --accelerate --cdrom /home/software/CentOS-7-x86_64-DVD-2003.iso --graphics vnc,listen=0.0.0.0 --network bridge=br0 --force --autostart --connect qemu:///system
命令行安装:不需要 vnc 连接上去。
virt-install --name=vserver1 --memory=4096,maxmemory=6144 --vcpus=2,maxvcpus=4 --os-type=linux --os-variant=rhel7 --location=/home/software/CentOS-7-x86_64-DVD-2003.iso --disk path=/home/kvm_data/centos7.8.img,size=10 --bridge=virbr0 --graphics=none --console=pty,target_type=serial --extra-args="console=tty0 console=ttyS0"
虚拟机配置文件
libvirtd 配置文件
配置文件位置:
/etc/libvirt/libvirtd.conf
日志配置:
#将日志级别设置为 1(调试) log_level = 1 #指定日志输出文件名称 log_outputs="1:file:/var/log/libvirt/libvirtd.log"
注意 :libvirtd. 日志文件可能会飞速增长。 用户应配置 logrotate ,否则您的 /var 文件系统最后会装满内容。
以上的日志的输出级别为 debug 级别.这个级别的日志是最多的,一般只在开发以及测试的时候使用。而在生产运行环境中,日志的级别为 info,warn,error,fatal. 以下前面的数字为他们的 level.
1 debug 2 info 3 warn 4 error 5 fatal
重启 libvirtd 。虚拟机 Guest 操作系统正在运行时可重启 libvirtd。
/etc/init.d/libvirtd restart
如果在目录下还是没发现日志文件,那么你可能需要使用一下命令来运行 libvirtd.
libvirtd --daemon --listen --config /etc/libvirt/libvirtd.conf
查看 virsh 管理 qemu 虚拟机的信息
在使用 virsh 管理 qemu 的虚拟机时候,也是有日志的输出的.
具体的 log 在目录 /var/log/livirt/qemu/ 下面,具体的 log 文件名与虚拟机名字关联.
使用
查看所有虚拟机状态
[root@server1 ~]# virsh list --all Id Name State ---------------------------------------------------- - centos7.0 shut off - centos7.0-2 shut off [root@server1 ~]#
查看指定虚拟机状态
[root@server1 ~]# virsh domstate centos7.0 shut off [root@server1 ~]#
手动启动虚拟机
[root@server1 ~]# virsh start centos7.0 Domain centos7.0 started [root@server1 ~]# virsh domstate centos7.0 running [root@server1 ~]#
手动关闭虚拟机
[root@server1 ~]# virsh shutdown centos7.0 Domain centos7.0 is being shutdown [root@server1 ~]# virsh domstate centos7.0 shut off [root@server1 ~]#
直接通过主机配置文档启动主机
virsh create /etc/libvirt/qemu/node1.xml
关机虚拟机
virsh shutdown node1
重启虚拟机
virsh reboot node1
手动挂起/恢复虚拟机
[root@server1 ~]# virsh suspend centos7.0 Domain centos7.0 suspended [root@server1 ~]# virsh resume centos7.0 Domain centos7.0 resumed [root@server1 ~]# virsh domstate centos7.0 running [root@server1 ~]#
断电关闭虚拟机
[root@server1 ~]#virsh destroy centos7.0
设置随宿主启动(开机启动)
[root@server1 ~]#virsh autostart centos7.0
取消开机启动
[root@server1 ~]#virsh autostart --disable centos7.0
删除虚拟机
[root@server1 ~]#virsh undefine centos7.0
导出(备份)虚拟机配置文件
[root@server1 ~]#virsh dumpxml centos6 > /home/vpsbak/centos6bak.xml
编辑虚拟机配置文件
配置文件位置是 /etc/libvirt/qemu 下,可以用 vim 进行编辑,但是建议使用 KVM 提供的命令进行编辑:
[root@server1 ~]#virsh edit centos7.0
查看虚拟机磁盘信息
[root@server1 ~]#qemu-img info vm01.img image: vm01.img file format: qcow2 virtual size: 10G (10737418240 bytes) disk size: 3.3G cluster_size: 65536 Format specific information: compat: 0.10
查看指定虚拟机使用磁盘
[root@server1 ~]#virsh domblklist vm01 目标 源 ------------------------------------------------ vda /home/vps/vm01.img vdb /home/vps/data.img hda
虚拟机迁移宿主物理服务器
备份虚拟机配置文件
[root@kvm6 vps] virsh dumpxml centos6 > /home/vpsbak/centos6.xml
关机,迁移配置文件和磁盘文件,配置文件路径是 /etc/libvirt/qemu
[root@kvm6 vps] scp /home/vpsbak/centos6.xml root@192.168.0.3:/etc/libvirt/qemu/ [root@kvm6 vps] scp /home/vpsdata/vps/centos6.qcow2 root@192.168.0.3:/data/vpsdata/vps
激活虚拟机配置文件
[root@server1 ~]#virsh define /etc/libvirt/qemu/centos6.xml
获取虚机网卡接口
domiflist(domain)显示网卡接口:
$ virsh domiflist vm1 Interface Type Source Model MAC ------------------------------------------------------- vnet0 network default rtl8139 52:54:00:0e:cb:48
获取网卡实时信息
domifstat(demo vnet0) 显示网卡信息 :
$ virsh domifstat vm1 vnet0 vnet0 rx_bytes 51575 vnet0 rx_packets 863 vnet0 rx_errs 0 vnet0 rx_drop 0 vnet0 tx_bytes 4543 vnet0 tx_packets 44 vnet0 tx_errs 0 vnet0 tx_drop 0
显示虚拟机的信息
dominfo(demo)显示虚拟机的信息
$ virsh dominfo vm1 Id: 4 Name: vm1 UUID: b961bd90-6445-4f61-9f14-77dd8c407cfb OS Type: hvm State: running CPU(s): 1 CPU time: 97.1s Max memory: 524288 KiB Used memory: 524288 KiB Persistent: yes Autostart: disable Managed save: no Security model: apparmor Security DOI: 0 Security label: libvirt-b961bd90-6445-4f61-9f14-77dd8c407cfb (enforcing)
获取虚拟机的UUID
domuuid (demo)显示虚拟机的id
$ virsh domuuid vm1 b961bd90-6445-4f61-9f14-77dd8c407cfb
获取虚拟机的ID
domid(id or name ) 根据名字得到id或根据id得到名字
$ virsh domid vm1 4 $ virsh domname 4 generic
23、显示虚拟机的运行状态
domstate (demo) 显示虚拟机的状态
$ virsh domstate vm1 running
domcontrol(demo) 返回虚拟机的状态ok or error
$ virsh domcontrol vm1 ok
编辑虚拟机的配置文件
edit (demo) 编辑主机的配置文件,可调整内存、CPU等配置.
$ virsh edit generic
virsh console连接虚机
# 连接命令 virsh console vm1
需要在虚机上做一下配置
centos 7
grubby --update-kernel=ALL --args="console=ttyS0" reboot
centos 6
# 执行如下脚本 #/bin/sh GRUB=/etc/grub.conf BOOT_GRUB=/boot/grub/grub.conf echo "ttyS0" >> /etc/securetty sed -i '/\tkernel/{s/$/ console=ttyS0/g}' ${GRUB} sed -i '/\tkernel/{s/$/ console=ttyS0/g}' ${BOOT_GRUB} echo 'S0:12345:respawn:/sbin/agetty ttyS0 115200' >> /etc/inittab
ubuntu
systemctl disable systemd-networkd-wait-online systemctl enable serial-getty@ttyS0.service systemctl start serial-getty@ttyS0.service
为虚拟机添加一块qcow2磁盘
查看磁盘大小与磁盘格式
查看磁盘格式和磁盘文件位置:
$ virsh edit generic
查看硬盘格式信息
$ qemu-img info /var/lib/libvirt/images/generic.qcow2 file format: qcow2 virtual size: 20G (21474836480 bytes) disk size: 2.3G cluster_size: 65536 Format specific information: compat: 1.1 lazy refcounts: true refcount bits: 16 corrupt: false
添加一块qcow2磁盘
$ qemu-img create -f qcow2 test01_add.qcow2 2G
将新增的磁盘文件添加到虚拟机
$ virsh edit generic 添加如下内容:
启动虚拟机,分区、格式化、挂载磁盘
修改虚拟机内存及CPU大小
$ virsh edit generic
快照管理
创建快照
$ virsh snapshot-create-as generic snap1
查看快照
$ virsh snapshot-list generic Name Creation Time State ------------------------------------------------------------ snap1 2018-05-23 14:17:40 +0800 running
恢复快照
$ virsh snapshot-revert generic snap1
显示快照信息
$ virsh snapshot-info generic snap1 Name: snap1 Domain: generic Current: yes State: running Location: internal Parent: - Children: 0 Descendants: 0 Metadata: yes
删除快照
$ virsh snapshot-delete generic snap1
虚拟机克隆
现有本地虚拟机需要先停止
查看本地虚拟机
$ virsh list –all Id Name State ---------------------------------------------------- - generic shut off
从generic克隆一个虚拟机vm1
执行克隆操作,使用磁盘文件vm1.img
$ virt-clone -o generic -n vm1 -f /data/image/vm1.img
启动虚拟机
$ virsh start vm1
启动后修改主机名、IP等
查看现有虚拟机
$ virsh list –all Id Name State ---------------------------------------------------- 8 vm1 running
这里将从vm1克隆另一个虚拟机vm2
导出vm1虚拟机配置文件
$ virsh dumpxml vm1 > vm2.xml ```bash 4. 查看vm1磁盘文件所在位置:
$ virsh edit vm1
定义vm2配置文件
$ virsh define vm2.xml Domain vm2 defined from vm2.xml
此时会看到vm2虚拟机已经生成
$ virsh list –all Id Name State ---------------------------------------------------- - vm2 shut off
启动vm3,重新更改主机名、IP等。
KVM Linux 虚拟化
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。