KVM 部署 日常操作
KVM 安装
条件检测准备;CPU 虚拟化 ,现在物理机都支持。
开启cpu虚拟化 现在至强一般机器都有
cat /proc/cpuinfo |grep flags 需要全虚拟化支持为vmx(Inter)或svm(AMD)
检测是否支持虚拟化
egrep 'vmx|svm' /proc/cpuinfo
依赖包组:
virtualization
// 提供虚拟机的环境,主要包含qemu-kvm
virtualization-client
// 管理和安装虚拟机实例的客户端,主要有python-virtinst,virt-manager,virt-viewer
virtualization-platform
// 提供访问和控制虚拟客户端的接口,主要有libvirt,libvirt-client
virtualization-tools
// 管理离线虚拟机镜像的工具,主要有libguestfs
yum 安装 依赖包组;
# yum groupinstall "Virtualization" "Virtualization Client" "Virtualzation Platform"
在 kvm 平台安装 vnc-server 和 tigervnc 这个 vncviewer ; 便于客户端操作管理
# yum install vnc-server tigervnc -y
安装依赖插件
# yum -y install kvm python-virtinst libvirt tunctl bridge-utils virt-manager qemu-kvm-tools virt-viewer
安装检测模块示例:
root@datanode3: ~# modprobe -ls |grep kvm
kernel/arch/x86/kvm/kvm.ko
kernel/arch/x86/kvm/kvm-intel.ko
kernel/arch/x86/kvm/kvm-amd.ko 检测 KVM 模块:
lsmod | grep kvm
启动 libvirt
启动 libvirt;
# /etc/init.d/libvirtd start
创建虚拟网卡
Bridge方式即虚拟网桥的网络连接方式,是客户机和子网里面的机器能够互相通信;
网桥的基本原理就是创建一个桥接接口br0,在物理网卡和虚拟网络接口之间传递数据。
建桥接设备及关联网卡到桥接设备上:
# virsh iface-bridge eth0 br0
桥接网络按照正常网络配置就行
为提高安全性稳定性可以 使用bond模式 配置网卡 iface-bridge 创建之后 br0 虚拟网卡配置
[root@test network-scripts]# cat ifcfg-br0 DEVICE="br0"
ONBOOT="yes"
TYPE="Bridge"
BOOTPROTO="none"
IPADDR="172.16.2.34"
NETMASK="255.255.255.0"
GATEWAY="172.16.2.1"
STP="on"
DELAY=""
bond 模式网络配置示例:
原有 bond0 网卡配置 变为:
[root@test network-scripts]# cat ifcfg-bond0 DEVICE=bond0
ONBOOT=yes
BONDING_OPTS=
BRIDGE="br0"
查看桥接设备:
[root@test network-scripts]# brctl show bridge name bridge id STP enabled interfaces
br0 8000.080027e59101 yes eth0
docker0 .56847afe9799 no
virbr0 .525400bdd5a1 yes virbr0-nic
KVM 磁盘格式介绍:
raw 裸磁盘不支持快照
qcow2, 不保存原始镜像只会记录操作和原始镜像不同的内容,做快照。写时拷贝的一种技术,这种技术把所做的操作记录在一个文件中,只对这个文件镜像。Openstack使用的方式推荐使用这个
区别:
qcow2 数据的基本组成单元是cluster
raw 性能比qcow2快
raw 创建多大磁盘,就占用多大空间直接分配,qcow2动态的用多大占用多大空间
KVM 创建硬盘方式:
创建硬盘方式
qemu-img create -f raw /opt/CentOS--x86_64.raw 10G
查看磁盘镜像的格式
qemu-img info /opt/CentOS--x86_64.raw
kvm 默认文件位置:
默认磁盘存储路径
/var/lib/libvirt/images/
【 创建虚拟机 】
virt-install --name centos6 --ram 512 --vcpus=1 --os-type=linux --disk path=/var/lib/libvirt/images/centos64.img,size=10,format=qcow2 -w bridge=br0 --cdrom=/data/CentOS-6.8-x86_64-minimal.iso --graphics vnc,listen=0.0.0.0 --force --autostart
virsh 常用命令
# virsh list --all
# virt-install #建立kvm虚拟机
# virsh list #查看正在运行的KVM虚拟机
# virsh list --all #查看所有KVM虚拟机
# virsh start name #启动KVM虚拟机
# virsh shutdown name #正常关闭KVM虚拟机
# virsh destroy name #强制关闭KVM虚拟机(类似于直接断电)
# virsh suspend name #挂起KVM虚拟机
# virsh resume name #恢复挂起的KVM虚拟机
# virsh dumpxml name #查看KVM虚拟机配置文件
# virsh edit name #编辑KVM虚拟机的xml配置文件
# virsh undefine name #彻底删除KVM虚拟机,不可逆,如果想找回来,需要备
测试虚拟机删除和恢复:
虚拟机是通过xml来管理的,不小心把xml删除掉的话可以通过xml来进行恢复,前提是硬盘还在。
()备份xml文件
# virsh dumpxml CentOS--x86_64 >CentOS--x86_64-bakcup.xml
()彻底删除kvm虚拟机做测试
# virsh undefine CentOS--x86_64
()关闭虚拟机
# virsh shutdown CentOS--x86_64
()查看虚拟机,刚才创建的一台虚拟机没有了。
# virsh list --all
Id Name State
---------------------------------------------------- ()恢复虚拟机
# virsh define CentOS--x86_64-bakcup.xml
()启动虚拟机
# virsh start CentOS--x86_64
开机自动启动虚拟机:
# virsh autostart test # virsh edit CentOS--x86_64.xml 编辑虚拟机的XML文件。
console 链接;
centos6
、添加 ttyS0
# vi /etc/securetty
、编辑内核
编辑/etc/grub.conf kernel中加入console=ttyS0
、编辑/etc/inittab
添加启动项;
最后一行加入内容 S0::respawn:/sbin/agetty ttyS0
、重启reboot
centos 7
在虚机里运行
[root@localhost ~]# grubby --update-kernel=ALL --args="console=ttyS0"
问题?
kvm 安装 主机头绑定问题
vncviewer问题; 在使用virt-manager安装kvm虚拟机的时候,启动报错,提示
Unable to initialize GTK: could not open display
查看日志显示:
WARNING! The remote SSH server rejected X11 forwarding request.
解决办法:
yum -y install xorg-x11-xauth
退出xshell后从新登录,然后再调用virt-manager即可
KVM 部署 日常操作的更多相关文章
- kvm虚拟化学习笔记(四)之kvm虚拟机日常管理与配置
KVM虚拟化学习笔记系列文章列表----------------------------------------kvm虚拟化学习笔记(一)之kvm虚拟化环境安装http://koumm.blog.51 ...
- [转载]XStar's Libvirt+KVM部署记录 目录
XStar's Libvirt+KVM部署记录 目录 Create: 2013-12-11 Update: 2014-01-03 准备工作 KVM网站 http://sourceforge.net/p ...
- LINUX日常操作二
参见:Linux日常操作一 selinux 开启和关闭 一.查看SELinux状态:1./usr/sbin/sestatus -v ##如果SELinux status参数为enabled ...
- ORACLE日常操作手册
转发自:http://blog.csdn.net/lichangzai/article/details/7955766 以前为开发人员编写的oracle基础操作手册,都基本的oracle操作和SQL语 ...
- Oracle 11g 物理Dataguard日常操作维护(二)
Oracle 11g 物理Dataguard日常操作维护(二) 2017年8月25日 14:34 3.3 3.3.1 查看备库进程状态 SYS(125_7)@fpyj123> select pr ...
- KVM部署LVS集群故障案例一则
一.故障现象 KVM部署LVS(Linux Virtual Server)集群后,能够单独以HTTP方式访问RS(Real Server)的实际IP,但无法通过VIP(Virtual IP)访问. 二 ...
- redis日常操作
redis针对所有类型的日常操作: keys * ## 取出所有key keys my* ## 模糊匹配 exists name ## 存在name键返回1,否则返回0 del key1 ## 删除一 ...
- 从零开始使用git第二篇:git的日常操作
从零开始使用git 第二篇:git的日常操作 第一篇:从零开始使用git第一篇:下载安装配置 第二篇:从零开始使用git第二篇:git实践操作 第三篇:从零开始使用git第三篇:git撤销操作.分支操 ...
- python专题我对json的日常操作
一前言 本篇文章将会阐述对json的日常操作,如何读取json文件,将json文件转为字典:如何将字典转为json,将字典写入文件等: 二 josn数据格式简要说明 json对于初学者可以理解是一种数 ...
随机推荐
- Bootstrap按钮式下拉菜单
前面的话 按钮式下拉菜单仅从外观上看,和下拉菜单效果基本上是一样的.不同的是普通的下拉菜单是block元素,而按钮式下拉菜单是inline-block元素.本文将详细介绍Bootstrap按钮式下拉菜 ...
- VS2013编译报错error C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS.
解决方法有两个: 1. 在预编译头文件stdafx.h里(在没有include任何头文件之前)定义下面的宏: #define _CRT_SECURE_NO_DEPRECATE 2. 将sprintf函 ...
- ansible系列4-关闭ssh首次连接时提示
在ansible配置文件中找到 /etc/ansible/ansible.cfg 方法1 在配置文件中找到 了解到问题原因为,我们了解到进行ssh连接时,可以使用-o参数将StrictHostKeyC ...
- POJ2635-The Embarrassed Cryptographer-大整数素因子
计算一个大整数(10^100)中有没有一个小于L的素因子.这个大整数是两个素数的乘积.其实就是RSA加密. 做法是把大整数表示成千进位,用数组存储,然后一位一位地取模. /*------------- ...
- window service 开发
为了便于window service的调试和开发. 我整理了一下代码,方便大家查阅 App.config 设置启动时间 timerStart-10点 interval-3600000 1小时检查一次 ...
- 2017ACM/ICPC亚洲区沈阳站-重现赛
HDU 6222 Heron and His Triangle 链接:http://acm.hdu.edu.cn/showproblem.php?pid=6222 思路: 打表找规律+大数运算 首先我 ...
- Python的二叉树实现
二叉树需要实现的功能及思路 找到最小值 没什么好说的就是二叉树最左下的顶点 找到最大值 没什么好说的就是二叉树最右下的顶点 插入 分情况,如果二叉树为空那么直接直接设置成根节点就好了.否则就逐层向下, ...
- 1.Zabbix报错信息:It probably means that the systems requires more physical memory.
点击返回:自学Zabbix之路 1.Zabbix报错信息:It probably means that the systems requires more physical memory. 1.报错信 ...
- 使用nagios监控ssl证书过期时间
1.编写监控脚本. # vim check_ssl_expiry.sh #!/bin/bash STATE_OK=0 STATE_WARNING=1 STATE_CRITICAL=2 Host=$1 ...
- JAVA多线程之中断机制(如何处理中断?)
一,介绍 这篇文章主要记录使用 interrupt() 方法中断线程,以及如何对InterruptedException进行处理.感觉对InterruptedException异常进行处理是一件谨慎且 ...