背景

由于生产环境的服务器并不会安装桌面环境,简单操作的图形化安装也不适合批量部署安装。因此,我还是更倾向于在命令下安装配置KVM虚拟机。结合了一些资料和个人使用的状况,我大致列出了一些基本和常用的使用方法。

安装配置

一、环境介绍

操作系统:centos6.6 内核版本:2.6 IP地址:172.16.57.24

二、检查CPU

和 Xen 不同,KVM 需要有 CPU 的支持(Intel VT 或 AMD SVM),在安装 KVM 之前检查一下 CPU 是否提供了虚拟技术的支持

egrep 'vmx|svm' /proc/cpuinfo

三、安装KVM

  1. 这里安装一些虚拟化的组件

    yum -y install kvm python-virtinst libvirt  bridge-utils virt-manager qemu-kvm-tools  virt-viewer  virt-v2v libguestfs-tools-c
  2. 对kvm进行如下如下配置:
    vim /etc/libvirt/libvirtd.conf

    这里主要是tcp连接的设置 末尾添加如下:

    listen_tls = 0
    listen_tcp = 1
    tcp_port = "16509"
    listen_addr = "172.16.57.24"
    unix_sock_ro_perms = "0777"
    unix_sock_rw_perms = "0770"
    auth_tcp = "none"
    max_clients = 1024
    min_workers = 100
    max_workers = 200
    max_requests = 20
    max_client_requests = 50
    vim qemu.conf

    这里主要是对vnc的设置,一会儿通过vnc-viewer连接来进行安装 末尾添加 vnc_listen = 0.0.0.0 vnc_password = "bigdata" #vnc连接密码 remote_display_port_min = 5900 #vnc最小端口 remote_display_port_max = 65535 #vnc最大端口 

  3. 确认一下是否 kvm 安装成功:
    /etc/init.d/libvirtd restart
  4. 查看是否启动:
    ps -ef | grep
  5. 查看kvm模块是否正常加载:
    lsmod |grep kvm

四、配置网桥连接

  1. 配置网桥br0

    vim /etc/sysconfig/network-scripts/ifcfg-br0
    DEVICE=br0
    TYPE=Bridge
    ONBOOT=yes
    NM_CONTROLLED=yes
    BOOTPROTO=static
    IPADDR=172.16.57.24
    NETMASK=255.255.255.0
    GATEWAY=172.16.57.1
    DNS1=202.96.209.133
    vim /etc/sysconfig/network-scripts/ifcfg-em1
    DEVICE=em1
    TYPE=Ethernet
    ONBOOT=yes
    BRIDGE=br0
    NM_CONTROLLED=yes
  2. 重启网络
    /etc/init.d/network restart
  3. 查看网络连接
    brctl show

    如果配置成功,会有以下输出:

    bridge name	bridge id		STP enabled	interfaces
    br0 8000.14187745822e no em1
    vnet0
    vnet1
    vnet2
    vnet3
    vnet4
    vnet5
    vnet6
    virbr0 8000.5254005fcc0b yes virbr0-nic
  4. 检查ip转发是否开启
    cat /etc/sysctl.conf |grep ip_forward
    net.ipv4.ip_forward = 1

    如果没有开启:

    vim /etc/sysctl.conf

    修改

    net.ipv4.ip_forward = 1
    /sbin/sysctl -p

五、安装虚拟机

virt-install  --name=tomcat_01 --ram 8192 --vcpus=2 /
--disk path=/var/lib/libvirt/images/tomcat_01.img,size=20,format=raw,bus=virtio /
--cdrom /var/iso/CentOS-6.7-x86_64-minimal.iso --network bridge=br0,model=virtio /
--vnc --accelerate --force --autostart

这里解释一下主要的几个参数含义: 
–name 给虚拟机起个名字
–ram 分配给虚拟机的内存,单位MB
–vcpus 分配给虚拟机的cpu个数
–cdrom 指定安装文件的全路径
–disk 指定虚拟机img文件路径,如果虚拟机使用lvm分区,这里就指向到lvm的分区就行
size 虚拟机文件大小,单位GB
bus 虚拟机磁盘使用的总线类型,为了使虚拟机达到好的性能,这里使用virtio
cache 虚拟机磁盘的cache类型
–network bridge 指定桥接网卡
model 网卡模式,这里也是使用性能更好的virtio
–graphics图形参数
这里我安装的虚拟机名字为tomcat_01,接下来查看其vnc端口:

ps aux | grep qemu | grep tomcat_01

当时我们设置vnc端口最小为5900,那么这里指的就是5902这个端口。 接下来通过在windows下使用vnc-viewer来连接172.16.57.24:5902,并输入设置的密码,即可进行安装。

常用操作

  1. 宿主机管理虚拟机 对虚拟机进行开关等管理,需要在虚拟机上安装acpid的服务,并启动它。
  2. 克隆虚拟机 一般制作一个常用的虚拟机模板,下次安装可以直接来克隆这个模板。
    virt-clone --connect qemu:///system --original=tomcat_01 --name=tomcat_02 --file=//var/lib/libvirt/images/tomcat_02.img
    --original克隆的虚拟机对象
    --name 克隆的新虚拟机名称
  3. 添加磁盘 一般虚拟机的磁盘结构为系统盘加数据盘,当系统发生故障时,可以重新建一个系统盘,而数据盘不会丢失。 添加磁盘操作:
    cd /var/lib/libvirt/images/ 进入磁盘存放目录
    qemu-img create -f raw test_add.img 100G 创建一块100G的磁盘
    virsh attach-disk tomcat_01 /var/lib/libvirt/images/test_add.img vdb --cache none 动态添加磁盘

    这种方法是动态添加磁盘,而xml配置文件并没有发生变化,为了防止下次启动添加的磁盘失效,进行如下操作:

    virsh dumpxml tomcat_01 > tomcat_01.xml 将最新的虚拟机配置重定向到其配置文件中
    virsh define tomcat_01.xml

    这样,新增的磁盘就不会丢了。

  4. virsh命令的一些操作 
    Autostart 自动开始一个域 
    Create 从一个 XML 文件创建一个域 
    Define 从一个 XML 文件定义(但不开始)一个域 
    edit 编辑某个域的 XML 配置 
    shutdown 关闭一个域 
    start 开始一个(以前定义的)非活跃的域 
    reboot 重新启动一个域 
    suspend 挂起一个域 resume 重新恢复一个域 
    vncdisplay vnc 显示

【转载】基于Linux命令行KVM虚拟机的安装配置与基本使用的更多相关文章

  1. 基于Linux命令行KVM虚拟机的安装配置与基本使用

    背景 由于生产环境的服务器并不会安装桌面环境,简单操作的图形化安装也不适合批量部署安装.因此,我还是更倾向于在命令下安装配置KVM虚拟机.结合了一些资料和个人使用的状况,我大致列出了一些基本和常用的使 ...

  2. 7个基于Linux命令行的文件下载和网站浏览工具

    7个基于Linux命令行的文件下载和网站浏览工具 时间:2015-06-01 09:36来源:linux.cn 编辑:linux.cn 点击: 2282 次 Linux命令行是GNU/Linux中最神 ...

  3. [Android] 基于 Linux 命令行构建 Android 应用(七):自动化构建

    本章将演示如何基于 Linux 命令行构建 Android 应用,在开始本章之前,希望你已经阅读之前几章内容. 本文环境为 RHEL Sandiego 32-bits,要基于 Linux CLI 构建 ...

  4. 【转载】Linux命令行常用光标移动快捷键

    声明:下面内容来自:http://www.linuxidc.com/Linux/2016-10/136027.htm, 来源:linux社区  作者:aslongas 我转载于此处,为了作个笔记,方便 ...

  5. 【转载】Linux 命令行快捷键 - 移动光标

    Linux 命令行快捷键 - 移动光标 涉及在linux命令行下进行快速移动光标.命令编辑.编辑后执行历史命令.Bang(!)命令.控制命令等.让basher更有效率. 常用 ctrl+左右键:在单词 ...

  6. [Android] 基于 Linux 命令行构建 Android 应用(六):Android 应用签名

    Android 要求所有应用在安装前必须使用证书进行数字签名.Android 使用该证书来确定一个应用以及其作者身份,该证书不要求由证书发行机构颁发,因此 Android 应用经常使用自我签名的证书, ...

  7. 5个基于Linux命令行的文件下载和网站浏览工具

    导读 命令行是GNU/Linux中最神奇迷人的部分,它是非常强大的工具;命令行本身功能多样,多种内建或者第三方的命令行应用使得Linux变得更加健壮和强大.Linux Shell支持多种不同类型的网络 ...

  8. [Android] 基于 Linux 命令行构建 Android 应用(四):命令行构建

    谷歌提供的 Android SDK 支持 Ant 自动构建[1],你可以使用调试和发行两种模式进行构建,两种模式不同之处在于调试模式 Ant 会调用内置的调试密钥,而发行模式调用你提供的私钥. 首先安 ...

  9. [Android] 基于 Linux 命令行构建 Android 应用(二):命令行管理项目

    创建 Android 项目 在命令行创建 Android 项目需要用到 android 工具(该工具由 Android SDK 提供,位于 <sdk>/tools/ 目录下.).它能自动生 ...

随机推荐

  1. 关于一次配合开发工作而产生的服务器内核参数问题(Android 网络问题)

    关于一次配合开发工作而产生的服务器内核参数问题(Android 网络问题) 问题转载(本人与作者遇到了同样的问题) 问题描述 问题描述:在这几年的Android开发中,遇到了一个困扰我好久的问题,有时 ...

  2. [2020年10月28日普级组]1406.SMRTFUN

    S M R T F U N SMRTFUN SMRTFUN 题目描述 "又肥又温顺,又大又笨,他们看起来那么傻,而且也不有趣--" 这些牛想要证明,他们是既有趣,又聪明的.为了这样 ...

  3. java面试-JVM内存结构

    一.JVM内存结构 二.类加载(classLoader)机制 java中的ClassLoader详解 java类加载机制面试题 java类加载机制面试题 虚拟机把描述类的数据从Class文件加载到内存 ...

  4. Dynamics CRM绑定表单查看当前表单的数据参数传递

    我们做报表的时候,报表运行的位置可以在列表.也可以在报表区同时也可以在表单界面 其他两个都还好,不需要进行过滤,但是在表单界面运行报表需要将表单的GUID传给报表获取数据,否则就得手动去输入ID 具体 ...

  5. Dynamics CRM报表提示rsProcessingAborted解决方法

    有时候CRM用的好好的突然报表提示了一个错误,rsProcessingAborted如下图: 开始以为是权限问题,在数据库捣鼓了很长时间,服务也重启了很多遍都没效果.后来试了一下重新安装一下报表服务器 ...

  6. 【PHP】用了这么久的Laravel框架,你分析过核心架构了没

    Laravel最初的设计是为了面向MVC架构的,它可以满足如事件处理.用户身份验证等各种需求.另外它还有一个由管理数据库强力支持,用于管理模块化和可扩展性代码的软件包管理器. Laravel以其简洁. ...

  7. 分库分表之后,id主键如何处理?

    (1)数据库自增id 这个就是说你的系统里每次得到一个id,都是往一个库的一个表里插入一条没什么业务含义的数据,然后获取一个数据库自增的一个id.拿到这个id之后再往对应的分库分表里去写入. 这个方案 ...

  8. Day13_64_线程的优先级

    线程的调度 * 单核CPU在某一时刻只能执行一条指令,线程只有得到CPU的时间片,也就是使用权,才可以执行指令 * 在单核CPU的机器上线程不是并行运行的,而是频繁切换运行的,只有在多个CPU上线程才 ...

  9. 13- jmeter性能测试案例

    配置原件 HTTP请求默认值 前置处理程序 定时器 取样器 后置处理器:正则表达式提取器 断言 监听器 性能测试流程 1.评估获取性能测试需求(访问量大,操作频繁) 2.确定性能测试目标 : 并发用户 ...

  10. POJ3277 线段树段更新,点询问+二分离散化+暴力

    题意:       x轴上有一些矩形,问你这些矩形覆盖的面积和是多少. 思路:       首先范围很大,n很小,果断离散化,然后我们就是求出任意区间的最大值作为当前区间的高,最后在算一遍答案就行了, ...