基于命令行进行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

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xiaoying5191/article/details/79955215
个人分类: kvm
上一篇Shell报错bash^M /bin/bash^M: bad interpreter: No such file or directory
下一篇简明扼要kvm安装
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭