zoukankan      html  css  js  c++  java
  • 基于命令行进行kvm虚拟机安装和管理,添加VNC实现可视化

    经过kvm的安装接下来要安装操作系统

    • 首先上传要安装系统的镜像到Linux母机上

      采用ftp的方式,已经上传镜像到Linux下/var/ftp/pub文件夹

    • 创建一个路径进行存放kvm虚拟机:

      mkdir -p /opt/kvm

    • 使用qemu-img创建一个镜像文件:
      qemu-img create -f qcow2 /opt/kvm/gitlab.qcow2 100G
      -这里我们采用命令行的方式进行安装,命令如下:

      virt-install --name gitlab --ram 2048 --vcpus=1 --disk/opt/kvm/gitlabt=qcow2,size=100,  --network bridge=br0 --os-type=linux --cdrom=/opt/is --graphic vnc,listen=0.0.0.0,port=5910 -v --os-variant=rhel7.4

      virt-install [参数说明]

      一般选项:

    -n NAME, --name=NAME:虚拟机名称,需全局惟一; 
    
    -r MEMORY, --ram=MEMORY:虚拟机内在大小,单位为MB
    --vcpus=VCPUS[,maxvcpus=MAX][,sockets=#][,cores=#][,threads=#]:VCPU个数及相关配置;
    
     --cpu=CPUCPU模式及特性,如coreduo等;可以使用qemu-kvm -cpu ?来获取支持的CPU模式;
    
    -c CDROM, --cdrom=CDROM:光盘安装介质;
    
     -l LOCATION, --location=LOCATION:安装源URL,支持FTPHTTPNFS等,如ftp://172.16.0.1/pub
    --pxe:基于PXE完成安装; --livecd: 把光盘当作LiveCD
    --os-type=DISTRO_TYPE:操作系统类型,如Linux、unix或windows等; 
    
    --os-variant=DISTRO_VARIANT:某类型操作系统的变体,如rhel5、fedora8等; 
    
    -x EXTRA, --extra-args=EXTRA:根据--location指定的方式安装GuestOS时,用于传递给内核的额外选项,例如指定kickstart文件的位置,
    
    --extra-args "ks=http://172.16.0.1/class.cfg" 
    
    --boot=BOOTOPTS:指定安装过程完成后的配置选项,如指定引导设备次序、使用指定的而非安装的kernel/initrd来引导系统启动等 ;例如: --boot cdrom,hd,network:指定引导次序; 
    
    --boot kernel=KERNEL,initrd=INITRD,kernel_args=”console=/dev/ttyS0”:指定启动系统的内核及initrd文件;

    硬盘:

    --disk=DISKOPTS:指定存储设备及其属性;格式为--disk /some/storage/path,opt1=val1,opt2=val2等;
    常用的选项有: 
        device:设备类型,如cdrom、disk或floppy等,默认为disk; 
        bus:磁盘总结类型,其值可以为ide、scsi、usb、virtio或xen; 
        perms:访问权限,如rw、ro或sh(共享的可读写),默认为rw; 
        size:新建磁盘映像的大小,单位为GB; 
        cache:缓存模型,其值有none、writethrouth(缓存读)及writeback(缓存读写); 
        format:磁盘映像格式,如raw、qcow2、vmdk等; 
        sparse:磁盘映像使用稀疏格式,即不立即分配指定大小的空间; 
    --nodisks:不使用本地磁盘,在LiveCD模式中常用;

    网络:

    -w NETWORK, --network=NETWORK,opt1=val1,opt2=val2:将虚拟机连入宿主机的网络中,其中NETWORK可以为: 
        bridge=BRIDGE:连接至名为“BRIDEG”的桥设备; 
        network=NAME:连接至名为“NAME”的网络;

    虚拟化:

    -v, --hvm:当物理机同时支持完全虚拟化和半虚拟化时,指定使用完全虚拟化;
    
     -p, --paravirt:指定使用半虚拟化;
    
     --virt-type:使用的hypervisor,如kvm、qemu、xen等;所有可用值可以使用’virsh capabilities’命令获取;
    图像
    
    --graphics TYPE,opt1=val1,opt2=val2:指定图形显示相关的配置,此选项不会配置任何显示硬件(如显卡),而是仅指定虚拟机启动后对其进行访问的接口; 
    
    TYPE:指定显示类型,可以为vnc、sdl、spice或none等,默认为vnc; 
    
        port:TYPE为vnc或spice时其监听的端口; 
        listen:TYPE为vnc或spice时所监听的IP地址,默认为127.0.0.1,可以通过修改/etc/libvirt/qemu.conf定义新的默认值;
    
        password:TYPE为vnc或spice时,为远程访问监听的服务进指定认证密码; --noautoconsole:禁止自动连接至虚拟机的控制台;

    安装完成后可以通过virsh-list命令进行查看安装的虚拟机列表

    virt-clone -o gitlab -n centos7 -f /opt/kvm/centos7.img

    通过这条命令可以克隆虚拟机

    virsh[参数说明]

    virsh命令进行管理kvm虚拟机:

    virsh 有命令模式和交互模式如果直接在vrish后面添加参数是命令模式,如果直接写virsh,就会进入交互模式

    • virsh list
      列出所有的虚拟机,虚拟机的状态有(8)种
      runing 是运行状态
      idel 是空闲状态
      pause 暂停状态
      shutdown 关闭状态
      crash 虚拟机崩坏状态
      daying 垂死状态
      shut off 不运行完全关闭
      pmsuspended客户机被关掉电源中中断
    • 连接实例
      qemu:///session (本地连接到个人实例)
      qemu+unix:///session (本地连接到个人实例)
      qemu:///system (本地连接到系统实例)
      qemu+nuix:///system(本地连接到系统实例)
      qemu://example.com/system(远程连接,TLS)
      qemu+tcp://example.com/system(远程登录,SASI)
      qemu+ssl://example.com/system(远程登录,ssl)

    • -v
      是只显示版本号

    • -V
      使显示版本的详细信息
    • -c - -connect 连接远程的主机
    • -l - -log 输出日志
    • -q - -quiet避免额外的信息
    • -r - - readonly 只读,一般和connect配合使用
    • -t - - timing 输出消逝的时间
    • -e - - escape 设置转意序列

    交互模式

    *quit,exit是离开virsh
    *version 是显示版本
    *cd 进入目录
    *pwd 打印当前路径
    *connect URI连接
    一般有下列几种

    xen:/// 连接当地的xem虚拟机
    qemu:///system (以root的身份)连接当地的qemu和kvm虚拟机
    qemu;///sessoin 以用户的身份连接当地的qemu和kvm
    lxc:///session 连接当地的linux容器

    *hostname 得到主机名字
    *sysinfo 的到虚拟机系统的详细信息,xml打印出来
    *nodeinfo得到电脑详细配置名字
    *nodecpustats 的到虚拟cpu 的状态
    *nodemenstats 的内存的详细信息
    *nodesuspend 延缓打印的时间最大为60 seconds
    *node-memory-tune 允许你设置node的内存参数
    *capablilities 打印虚拟机的特点
    *inject-nmi 给客户机注射nmi(不可屏蔽中断)
    *list列出所有的虚拟机(可以加参数)
    *freecell 打印出虚拟I机中可用的内存

    DOMAIN Commands

    *autostart (domain):标示自动启动虚拟机
    *console (domain):连接虚拟机的控制台
    *create (file):从文件创建虚拟机

    virsh dumpxml domain.xml
    virsh create domain.xml

    *define (file)定义一个虚拟机从文件中
    *desc (domain)显示虚拟机的描述信息
    *destory(domain) 销毁虚拟机
    *dommemstat(domain) 得到虚拟机运行的内存
    *domblkerror (domain) 显示有错的设备
    *domblkerror(domian)显示有错 的磁盘
    *domblklist(domain)显示虚拟机的磁盘
    *domiflist(domain)显示网卡接口
    *domifstat(demo vnet0) 显示网卡信息
    *domdisplay (demo)输出地址 和显卡
    *dominfo(demo)显示虚拟机的信息
    *domuuid (demo)显示虚拟机的id
    *domid(id or name ) 根据名字得到id
    * domjobabort (demo)种植虚拟机的当前任务
    * dojobinfo (demo) 显示虚拟机的任务
    * domstat (demo) 显示虚拟机的状态
    * domcontrol(demo) 返回虚拟机的状态ok or error
    * dump (demo file) 把文件配置输出到文件file
    * dumpxml(demo)直接显示demo的xml文件配置
    * edit (demo) 编辑主机的配置文件
    * messagedsave(demo) 虚拟机的信息保存
    * messagedsave-remove(demo) 移除保存的messagedsave
    *cpu-stats (demo) 虚拟机的cpu状态
    *screenshot (demo) 虚拟机截屏
    *setmen(demo) size 设置虚拟机的内存
    *setmaxmen(demo)设置虚拟机的最大内存
    *memtune(demo) 得到虚拟机分区的信息
    *blkiotune(demo) 得到虚拟机的磁盘信息
    *setvcpus(demo count)设置虚拟机的虚拟cpu个数
    *shutdown(demo) 关闭虚拟机
    *start(name or id) 开启虚拟机
    *suspend (demo) 挂起虚拟机
    *resume(demo) 回复虚拟机的suspend状态
    *dompmwakeup(demo)唤醒挂起的demo
    *ttyconsole (demo) 输出设备用的终端
    *vcpucount (demo) 设置cpu个数
    *vcpuinfo(demo) 得到cpu的信息
    *vncdisplay(demo) 显示虚拟机的ip

    device commands(设备命令)

    *attach-device (demo file)添加设备从file文件中
    *attach-interface (demo type source )添加一个接口
    *update-device(demo file)更新设备根据file

    virtual network commadns

    *net-autostart (network) 自动启动网卡(default)
    *net-create (file) 把配置加载到文件
    *net-destory ( network )关闭网卡
    *net-dumpxml(default) 把网卡配置加载到文件
    *net-edit(default) 编辑网卡信息
    *net-info(default) 网卡信息
    *net-list 显示网卡
    *net-uuid (default)得到网卡的id
    *net-name(id)得到网卡的名字
    *net-start (default)开启网卡

    Interface commands

    *iface-define(file)定义一个接口从文件里面
    *iface-dumpxml (lo)显示接口I的信息
    *iface-edit(lo) 编辑接口
    *iface-list 列出所有的接口
    *iface-name (mac) 根据mac得到名字
    *iface-mac(lo) 根据名字得到mac
    *iface-start(lo) 开启接口
    *iface-unbriged 解绑定 网桥
    *iface-undefine(lo) 不定义配置文件
    *iface-begin(lo)创建一个现有的接口设置
    *iface-commit 提交生命所有的改变有效,并且让接口工作
    *iface-rollbak 接口回滚

    STORAGE pppl commands

    *pool-auto (pool)标记池自动启动
    *pool-build(pool)建造一个池
    *pool-create(file)根据文件创建池
    *pool-define(file)定义但是不开启
    *pool-destory(pool)销毁池,以后能回复
    *pool-delete(pool)删除池,以后不能恢复
    *pool-dumpxml(pool)查看池的定义文件
    *pool-edit(pool)编辑池的定义文件
    *pool-info池的信息
    *pool-list的列表
    *pool-name(id)根据id得到name
    *pool-id(name)根据name得到id
    *pool-start(poop)开启池
    *pool-uuid (pool) 返回一个池的uuid

    VOLUME commads

    *vol-delete(pool)卷的删除
    *vol-upload(pool) 卷的加载
    *vol-list(pool)列出卷
    *vol-info(default)卷的信息
    *vol-name(path)得到卷的名字

    (快照)(secret)

    NWFILTER commands

    *nwfilter-define (file)根据文件生成一个网络过滤器
    *nwfilter-undefine(name) 删除网络过滤
    *nwfilter-list 列出来网络过滤
    *nwfilter-dumpxml(file)生成一个网络过滤的文件
    *nwfilter-edit(name) 编辑一个网络过滤器

    为了方便管理给母机添加桌面环境并安装vnc实现远程连接

    yum -y groupinstall "X Window System"  #安装X window
    yum -y groupinstall "GNOME Desktop"    #安装gnome桌面
    yum -y install tigervnc-server         #安装vncserver
    vncserver :1                           #开启vncserver服务

    vnc默认端口是5901,如果开启第二个vnc连接,执行vncserver :2

  • 相关阅读:
    oracle基本语句
    SVM入门(六)线性分类器的求解——问题的转化,直观角度
    深入浅出KMeans算法
    SVM入门(三)线性分类器Part 2
    SVM入门(一)SVM的八股简介
    Hadoop源代码分析(五)
    用HTML5 Audio API开发游戏音乐
    Hadoop源代码分析(六)
    SVM入门(四)线性分类器的求解——问题的描述Part1
    SVM入门(二)线性分类器Part 1
  • 原文地址:https://www.cnblogs.com/lixuebin/p/10808472.html
Copyright © 2011-2022 走看看