ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

第三章:创建虚拟机

2022-05-12 16:31:52  阅读:343  来源: 互联网

标签:relatime rw 第三章 创建 虚拟机 sys cgroup root type


一、使用virt-manager创建虚拟机

virt-manager基本使用

启用virt-manager

虚拟机管理主窗口

硬件细节窗口

  配置虚拟机启动选项

  附加USB设备给虚拟机

  准备工作

  USB重定向

虚拟机图形控制台

添加远程连接

显示虚拟机细节

性能监视

实验

环境准备

操作系统安装介质、ISO文件

创建存放镜像的目录

mkdir /iso

使用SCP工具将iso文件上传到KVM服务器

磁盘空间准备

添加新磁盘

 

#扫描新磁盘
cd /sys/class/scsi_host/
ll
echo "- - -"> /sys/class/scsi_host/host0/scan
echo "- - -"> /sys/class/scsi_host/host1/scan
echo "- - -"> /sys/class/scsi_host/host2/scan
#分区
fdisk /dev/sdb
t
8e
w
#创建LV
pvcreate /dev/sdb1
vgcreate vmvg /dev/sdb1
vgdisplay
lvcreate -l 20479 -n lvvm1 vmvg
#创建文件系统及挂载点
mkfs.ext4 /dev/vmvg/lvvm1
mkdir /vm
echo "/dev/vmvg/lvvm1 /vm ext4 defaults 0 0">>/etc/fstab
mount /vm
操作日志
[root@kvm ~]# cd /sys/class/scsi_host/
[root@kvm scsi_host]# ll
total 0
lrwxrwxrwx. 1 root root 0 May 11 09:44 host0 -> ../../devices/pci0000:00/0000:00:07.1/ata1/host0/scsi_host/host0
lrwxrwxrwx. 1 root root 0 May 11 09:44 host1 -> ../../devices/pci0000:00/0000:00:07.1/ata2/host1/scsi_host/host1
lrwxrwxrwx. 1 root root 0 May 11 09:44 host2 -> ../../devices/pci0000:00/0000:00:10.0/host2/scsi_host/host2
[root@kvm scsi_host]# echo "- - -"> /sys/class/scsi_host/host0/scan
[root@kvm scsi_host]# echo "- - -"> /sys/class/scsi_host/host1/scan
[root@kvm scsi_host]# echo "- - -"> /sys/class/scsi_host/host2/scan
[root@kvm scsi_host]# cd
[root@kvm ~]# fdisk /dev/sdb
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0xbcf1cff3.

Command (m for help): n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p):
Using default response p
Partition number (1-4, default 1):
First sector (2048-167772159, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-167772159, default 167772159):
Using default value 167772159
Partition 1 of type Linux and of size 80 GiB is set

Command (m for help): t
Selected partition 1
Hex code (type L to list all codes): 8e
Changed type of partition 'Linux' to 'Linux LVM'

Command (m for help): p

Disk /dev/sdb: 85.9 GB, 85899345920 bytes, 167772160 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0xbcf1cff3

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048   167772159    83885056   8e  Linux LVM

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.
[root@kvm ~]# pvcreate /dev/sdb1
  Physical volume "/dev/sdb1" successfully created.
[root@kvm ~]# pvscan
  PV /dev/sda2   VG centos          lvm2 [<19.00 GiB / 0    free]
  PV /dev/sdb1                      lvm2 [<80.00 GiB]
  Total: 2 [<99.00 GiB] / in use: 1 [<19.00 GiB] / in no VG: 1 [<80.00 GiB]
[root@kvm ~]# vgcreate vmvg /dev/sdb1
  Volume group "vmvg" successfully created
[root@kvm ~]# vgscan
  Reading volume groups from cache.
  Found volume group "centos" using metadata type lvm2
  Found volume group "vmvg" using metadata type lvm2
[root@kvm ~]# vgdisplay
  --- Volume group ---
  VG Name               centos
  System ID
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  3
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                2
  Open LV               2
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               <19.00 GiB
  PE Size               4.00 MiB
  Total PE              4863
  Alloc PE / Size       4863 / <19.00 GiB
  Free  PE / Size       0 / 0
  VG UUID               1gOKuC-43TX-RF7c-E1oi-3xDB-5mvY-yKarOV

  --- Volume group ---
  VG Name               vmvg
  System ID
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  1
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                0
  Open LV               0
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               <80.00 GiB
  PE Size               4.00 MiB
  Total PE              20479
  Alloc PE / Size       0 / 0
  Free  PE / Size       20479 / <80.00 GiB
  VG UUID               lXZN28-wHKO-ZPEG-fKX5-yUMU-Og9g-haup7o

[root@kvm ~]# lvcreate -l 20479 -n lvvm1 vmvg
  Logical volume "lvvm1" created.
[root@kvm ~]# vgdisplay vmvg
  --- Volume group ---
  VG Name               vmvg
  System ID
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  2
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                1
  Open LV               0
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               <80.00 GiB
  PE Size               4.00 MiB
  Total PE              20479
  Alloc PE / Size       20479 / <80.00 GiB
  Free  PE / Size       0 / 0
  VG UUID               lXZN28-wHKO-ZPEG-fKX5-yUMU-Og9g-haup7o

[root@kvm ~]# lvscan
  ACTIVE            '/dev/centos/swap' [2.00 GiB] inherit
  ACTIVE            '/dev/centos/root' [<17.00 GiB] inherit
  ACTIVE            '/dev/vmvg/lvvm1' [<80.00 GiB] inherit
[root@kvm ~]# mkfs.ext4 /dev/vmvg/lvvm1
mke2fs 1.42.9 (28-Dec-2013)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
5242880 inodes, 20970496 blocks
1048524 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=2168455168
640 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
        4096000, 7962624, 11239424, 20480000

Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

[root@kvm ~]# mkdir /vm
[root@kvm ~]# echo "/dev/vmvg/lvvm1 /vm ext4 defaults 0 0">>/etc/fstab
[root@kvm ~]# mount /vm
[root@kvm ~]# mount
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime,seclabel)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
devtmpfs on /dev type devtmpfs (rw,nosuid,seclabel,size=914616k,nr_inodes=228654,mode=755)
securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev,seclabel)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,seclabel,gid=5,mode=620,ptmxmode=000)
tmpfs on /run type tmpfs (rw,nosuid,nodev,seclabel,mode=755)
tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,seclabel,mode=755)
cgroup on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,xattr,release_agent=/usr/lib/systemd/systemd-cgroups-agent,name=systemd)
pstore on /sys/fs/pstore type pstore (rw,nosuid,nodev,noexec,relatime)
cgroup on /sys/fs/cgroup/perf_event type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,perf_event)
cgroup on /sys/fs/cgroup/blkio type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,blkio)
cgroup on /sys/fs/cgroup/memory type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,memory)
cgroup on /sys/fs/cgroup/pids type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,pids)
cgroup on /sys/fs/cgroup/cpuset type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,cpuset)
cgroup on /sys/fs/cgroup/hugetlb type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,hugetlb)
cgroup on /sys/fs/cgroup/net_cls,net_prio type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,net_prio,net_cls)
cgroup on /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,devices)
cgroup on /sys/fs/cgroup/cpu,cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,cpuacct,cpu)
cgroup on /sys/fs/cgroup/freezer type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,freezer)
configfs on /sys/kernel/config type configfs (rw,relatime)
/dev/mapper/centos-root on / type xfs (rw,relatime,seclabel,attr2,inode64,noquota)
selinuxfs on /sys/fs/selinux type selinuxfs (rw,relatime)
hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime,seclabel)
systemd-1 on /proc/sys/fs/binfmt_misc type autofs (rw,relatime,fd=31,pgrp=1,timeout=0,minproto=5,maxproto=5,direct,pipe_ino=14489)
mqueue on /dev/mqueue type mqueue (rw,relatime,seclabel)
debugfs on /sys/kernel/debug type debugfs (rw,relatime)
fusectl on /sys/fs/fuse/connections type fusectl (rw,relatime)
/dev/sda1 on /boot type xfs (rw,relatime,seclabel,attr2,inode64,noquota)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw,relatime)
tmpfs on /run/user/0 type tmpfs (rw,nosuid,nodev,relatime,seclabel,size=186304k,mode=700)
gvfsd-fuse on /run/user/0/gvfs type fuse.gvfsd-fuse (rw,nosuid,nodev,relatime,user_id=0,group_id=0)
/dev/sr0 on /run/media/root/CentOS 7 x86_64 type iso9660 (ro,nosuid,nodev,relatime,uid=0,gid=0,iocharset=utf8,dmode=0500,mode=0400,uhelper=udisks2)
/dev/mapper/vmvg-lvvm1 on /vm type ext4 (rw,relatime,seclabel,data=ordered)
[root@kvm ~]# ls /iso/
W2K3_VOL_WITH_SP2_CN_CREATE.iso

创建Windows虚拟机

打开Virt Machine Manager

首先打开Xming,在命令行使用virt-manager来打开

或者startx进入图形化界面,打开

点击创建新的虚拟机

选择本地安装介质

点击浏览

点击浏览本地

在问件目录中找到之前上传的iso镜像,点击open

下一步

配置内存和CPU

配置磁盘

为虚拟机命名,配置网络

按回车

选择文件系统格式

回车直接进入系统

创建Linux虚拟机

打开Virt Machine Manager

首先打开Xming,在命令行使用virt-manager来打开

或者startx进入图形化界面,打开

点击创建新的虚拟机

选择本地安装介质

点击浏览

选择centos镜像

指定存储位置

点击左下角加号,创建新的存储池

对存储池命名

更改Target Path路径

点击Volumes旁的加号来添加新的存储卷

配置名称、类型、大小

二、使用virt-install创建虚拟机

命令参数参考

命令参数参考
命令参数参考

-name name∶设定虚拟机名称;

-M machine∶指定要模拟的主机类型,如Standard PC、ISA-only PC或Intel-Mac等

-m megs∶设定虚拟机的RAM大小

-cpu model∶设定CPU模型,如coreduo、qemu64等

-smp n[,cores=cores][,threads=threads][,sockets=sockets][,maxcpus=maxcpus]∶设定模拟的SMP架构中CPU的个数等、每个CPU的核心数及CPU的socket数目等;PC机上最多可以模拟255颗CPU

maxcpus用于指定热插入的CPU个数上限

-numa opts∶指定模拟多节点的numa设备

-fda file:

-fdb file∶使用指定文件(file)作为软盘镜像,file为/dev/fd0表示使用物理软驱

-hda file -hdb file -hdc file

-hdd file∶使用指定file作为硬盘镜像

-cdrom file∶使用指定file作为CD-ROM镜像,需要注意的是-cdrom和-hdc不能同时使用;将file 指定为/dev/cdrom可以直接使用物理光驱

-drive option[,option[,option[]]]∶定义一个硬盘设备;可用子选项有很多

  file=/path/to/somefile∶硬件映像文件路径

  if=interface∶指定硬盘设备所连接的接口类型,即控制器类型,如ide、scsi、sd、mtd、floppy、pflash及virtio等

  index=index∶设定同一种控制器类型中不同设备的索引号,即标识号

  media=media∶定义介质类型为硬盘(disk)还是光盘(cdrom)

  snapshot=snapshot∶指定当前硬盘设备是否支持快照功能∶ on或off

  cache=cache∶定义如何使用物理机缓存来访问块数据,其可用值有none、writeback、unsafe 和writethrough四个

  format=format∶指定映像文件的格式,具体格式可参见qemu-img命令

-boot [order=drives][,once=drives][,menu=onloff]∶定义启动设备的引导次序,每种设备使用一个字符表示;不同的架构所支持的设备及其表示字符不尽相同,在x86PC架构上,a、b表示软驱、c表示第一块硬盘,d表示第一个光驱设备,n-p表示网络适配器;默认为硬盘设备

-boot order=dc,once=d

-net nic[,vlan=n][,macaddr=mac][,model=type][,name=name][,addr=addr][,vectors=v]∶创建一个新的网卡设备并连接至vlan n中;macaddr用于为其指定MAC地址,name用干指定一个在监控时显示的网上设备名称∶emu可以模拟多个类型的网卡设备

-net tap[,van=n][,name=name][,fd=h][,ifname=name][,script=file][,downscript=dfile]∶通过物理机的TAP网络接口连接至vlan n中,使用script=file指定的脚本(默认为/etc/qemu-ifup)来配置当前网络接口,并使用downscript=file指定的脚本(默认为/etc/qemu-ifdown)来撤消接口配置;使用script=no和downscript=no可分别用来禁止执行脚本

-net user[,option][,option][...]∶在用户模式配置网络栈,其不依赖于管理权限;有效选项有∶

  van=n∶连接至vlan n,默认n=0

  name=name∶指定接口的显示名称,常用于监控模式中

  net=addr[/mask]∶设定GuestOS可见的IP网络,掩码可选,默认为10.0.2.0/8

  host=addr∶ 指定GuestOS中看到的物理机的IP地址,默认为指定网络中的第二个,即x.x.x.2

  dhcpstart=addr∶ 指定DHCP服务地址池中16个地址的起始IP,默认为第16个至第31个,即x.x.x.I6-x.x.x.31

  dns=addr∶指定GuestOS可见的dns服务器地址;默认为GuestOS网络中的第三个地址,即xx.x.3

  tftp=dir∶激活内置的tftp服务器,并使用指定的dir作为tftp服务器的默认根目录

  bootfile=file∶BOOTP文件名称,用于实现网络引导GuestOS;如∶qemu-hda linux.img-boot n -net user,tftp=/tftpserver/pub,bootfile=/pxelinux.0

通过本地ISO文件来进行安装

qemu-img create -f qcow2 vm1-disk1.qcow2 10G
virt-install \
--name=vm1 \
--disk path=/vm/vm1-disk1.qcow2 \
--vcpus=1 --ram=1024 \
--cdrom=/iso/CentOS-6.10-i386-minimal.iso \
--network network=default \
--graphics vnc,listen=0.0.0.0 \
--os-type=linux \
--os-variant=rhel6
操作日志
[root@kvm ~]# cd /vm/
[root@kvm vm]# ll
total 16
drwx------. 2 root root 16384 May 11 13:50 lost+found
[root@kvm vm]# qemu-img create -f qcow2 vm1-disk1.qcow2 10G
Formatting 'vm1-disk1.qcow2', fmt=qcow2 size=10737418240 encryption=off cluster_size=65536 lazy_refcounts=off
[root@kvm vm]# ll
total 212
drwx------. 2 root root  16384 May 11 13:50 lost+found
-rw-r--r--. 1 root root 197120 May 11 19:46 vm1-disk1.qcow2
[root@kvm vm]# virt-install \
> --name=vm1 \
> --disk path=/vm/vm1-disk1.qcow2 \
> --vcpus=1 --ram=1024 \
> --cdrom=/iso/CentOS-6.10-i386-minimal.iso \
> --network network=default \
> --graphics vnc,listen=0.0.0.0 \
> --os-type=linux \
> --os-variant=rhel6

Starting install...
Domain creation completed.
Restarting guest.

考察新创建的虚拟机

[root@kvm ~]# virsh
Welcome to virsh, the virtualization interactive terminal.

Type:  'help' for help with commands
       'quit' to quit

virsh # list --all
 Id    Name                           State
----------------------------------------------------
 2     vm1                            running

virsh # dominfo vm1
Id:             2
Name:           vm1
UUID:           c021a8a5-4578-4a6f-b09f-d3eb92f74cd1
OS Type:        hvm
State:          running
CPU(s):         1
CPU time:       14.6s
Max memory:     1048576 KiB
Used memory:    1048576 KiB
Persistent:     yes
Autostart:      disable
Managed save:   no
Security model: selinux
Security DOI:   0
Security label: system_u:system_r:svirt_t:s0:c566,c881 (enforcing)

virsh # edit vm1

Kickstart安装

Kickstart是一种无人值守的安装方式

如果在安装过程中出现要填写参数的情况,安装程序首先会去查找Kickstart生成的文件,如果找到合适的参数,就采用所找到的参数;如果没有找到合适的参数,便需要安装者手工干预了

网络安装

我们也可以指定安装介质文件位置网络上

--location=http://

如果Web服务器是Windows,有可能出现错误

PXE安装

三、半虚拟化驱动virtio

使用半虚拟化驱动virtio的目的

为了提高内存、硬盘、网络的性能,需要支持半虚拟化

性能比较

KVM VirtIO paravirtualized drivers: why they matter

详情

半虚拟化设备统一接口

通过统一的接口virti以支持的多种硬件设备

不同的虚拟设备和不同的虚拟机可以有不同的前端驱动

不同的硬件设备可以有不同的后端驱动

两者之间的交互遵循virtio的标准

获得virtio驱动程序

红帽RHEL 4.8之后自动加载和安装virtio驱动

Windows操作系统需要额外安装virtio的驱动

方法1∶从RHN上下载

如果您有RHN订阅,可以从以下位置下载virtio-win包∶

https://access.redhat.com/downloads/

方法2∶从社区获得

http://www.linux-kvm.org/page/Downloads

实验1∶在已经安装好的Windows虚拟机上安装virtio驱动

通过向导创建的VM,默认磁盘为IDE接口、网卡为rtl8139,即全虚拟化驱动。

一定要按以下步骤来进行操作,否则会出现蓝屏错误

关闭虚拟机。编辑虚拟机的配置,添加一个很小的virtio硬盘、一块virtio网卡

虚拟光驱加载上传的的ISO文件

启动虚拟机。登录后,Windows会发现新的硬件

安装时使用手动搜索驱动,不同的操作系统路径如下

最后,安装其他驱动程序。如Balloon、串口等

实验2∶安装Windows操作系统时安装virtio驱动程序

Windows 2008及之后操作系统,在安装时指定驱动程序的位置

四、QEMU Guest Agent和SPICE Agent

QEMU guest agent安装与配置

如果VM中安装了QEMU guest agent,Host就可以使用libivrt向VM 发送命令,例如"冻结"、"释放"文件系统,虚拟CPU的热添加及移除等。

RHEL/CentOS 7中有相应的安装包。qemu-guest-agent-xxx.rpm

Windows需要手工安装

通过libvirt来使用QEMU guest agent

安装了QEMU guest agent后,对libvirt命令有如下的增强

virsh shutdown --mode=agent 比--mode=acpi更加安全地关闭操作系统

virsh snapshot-create -quiesce 在创建快照之前面,将缓存的内容刷入到磁盘

virsh domfsfreeze 静默文件系统

virsh dimfsthaw 恢复静默文件系统

virsh domfstrim 让虚拟机trim文件系统

virsh domtime 获得虚拟机的时间

virsh setvcpus 配置虚拟机的vCPU

virsh domifaddr --source agent 查询虚拟机的IP地址

virsh domfsinfo 显示虚拟机的文件系统列表

virsh set-user-password 设置虚拟机用户的密码

SPICE agent安装与配置

通过在VM操作系统中安装SPICE client,SPICE agent使virt-manager等图形应用程序更加流畅。例如∶

在virt-manager中调整窗口尺寸,SPICE agent自动调整X会话的分辨率

在Host与Guest之间复制与粘贴

防止鼠标拖尾等

下载∶

http://www.spice-space.org/download/

标签:relatime,rw,第三章,创建,虚拟机,sys,cgroup,root,type
来源: https://www.cnblogs.com/simplerude/p/16257758.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有