如何在Linux中用命令行工具管理KVM虚拟环境

简介:

如何在Linux中用命令行工具管理KVM虚拟环境

在我们KVM系列专题的第四部分,我们将会一起讨论下在命令行界面下来管理KVM环境。我们分别用‘virt-install’和virsh命令行工具来创建并配置虚拟机和存储池,用qemu-img命令行工具来创建并管理磁盘映像。

Linux系统的KVM管理

Linux系统的KVM管理

在这篇文章里没有什么新的概念,我们只是用命令行工具重复之前所做过的事情,也没有什么前提条件,都是相同的过程,之前的文章我们都讨论过。

第一步: 配置存储池

Virsh命令行工具是一款管理virsh客户域的用户界面。virsh程序能在命令行中运行所给的命令以及它的参数。

本节中,我们要用它给我们的KVM环境创建存储池。想知道关于这个工具的更多信息,用以下这条命令。

 
 
  1. # man virsh

1. 用virsh带pool-define-as的命令来定义新的存储池,你需要指定名字、类型和类型参数。

本例中,我们将名字取为Spool1,类型为目录。默认情况下你可以提供五个参数给该类型:

  • source-host
  • source-path
  • source-dev
  • source-name
  • target

对于目录类型,我们需要用最后一个参数“target”来指定存储池的路径,其它参数项我们可以用“-”来填充。

 
 
  1. # virsh pool-define-as Spool1 dir - - - - "/mnt/personal-data/SPool1/"

创建新存储池

创建新存储池

2. 查看环境中我们所有的存储池,用以下命令。

 
 
  1. # virsh pool-list --all

列出所有存储池

列出所有存储池

3. 现在我们来构造存储池了,用以下命令来构造我们刚才定义的存储池。

 
 
  1. # virsh pool-build Spool1

构造存储池

构造存储池

4. 用带pool-start参数的virsh命令来激活并启动我们刚才创建并构造完成的存储池。

 
 
  1. # virsh pool-start Spool1

激活存储池

激活存储池

5. 查看环境中存储池的状态,用以下命令。

 
 
  1. # virsh pool-list --all

查看存储池状态

查看存储池状态

你会发现Spool1的状态变成了已激活。

6. 对Spool1进行配置,让它每次都能被libvirtd服务自启动。

 
 
  1. # virsh pool-autostart Spool1

配置KVM存储池

配置KVM存储池

7. 最后来看看我们新的存储池的信息吧。

 
 
  1. # virsh pool-info Spool1

查看KVM存储池信息

查看KVM存储池信息

恭喜你,Spool1已经准备好待命,接下来我们试着创建存储卷来使用它。

第二步: 配置存储卷/磁盘映像

现在轮到磁盘映像了,用qemu-img命令在Spool1中创建一个新磁盘映像。获取更多细节信息,可以查看man手册。

 
 
  1. # man qemu-img

8. 我们应该在qemu-img命令之后指定“create, check,…”等等操作、磁盘映像格式、你想要创建的磁盘映像的路径和大小。

 
 
  1. # qemu-img create -f raw /mnt/personal-data/SPool1/SVol1.img 10G

创建存储卷

创建存储卷

9. 通过使用带info的qemu-img命令,你可以获取到你的新磁盘映像的一些信息。

查看存储卷信息

查看存储卷信息

警告: 不要用qemu-img命令来修改被运行中的虚拟机或任何其它进程所正在使用的映像,那样映像会被破坏。

现在是时候来创建虚拟机了。

第三步: 创建虚拟机

10. 现在到最后一个环节了,在最后一步中,我们将用virt-install命令来创建虚拟机。virt-install是一个用来创建新的KVM虚拟机命令行工具,它使用“libvirt”管理程序库。想获取更多细节,同样可以查看man手册。

 
 
  1. # man virt-install

要创建新的KVM虚拟机,你需要用到带以下所有信息的命令。

  • Name: 虚拟机的名字。
  • Disk Location: 磁盘映像的位置。
  • Graphics : 怎样连接VM,通常是SPICE。
  • vcpu : 虚拟CPU的数量。
  • ram : 以兆字节计算的已分配内存大小。
  • Location : 指定安装源路径。
  • Network : 指定虚拟网络,通常是virbr0网桥。
 
 
  1. virt-install --name=rhel7 --disk path=/mnt/personal-data/SPool1/SVol1.img --graphics spice --vcpu=1 --ram=1024 --location=/run/media/dos/9e6f605a-f502-4e98-826e-e6376caea288/rhel-server-7.0-x86_64-dvd.iso --network bridge=virbr0

创建新的虚拟机

创建新的虚拟机

11. 你会看到弹出一个virt-vierwer窗口,像是在通过它在与虚拟机通信。

虚拟机启动程式

虚拟机启动程式

虚拟机安装过程

虚拟机安装过程

结论

以上就是我们KVM教程的最后一部分了,当然我们还没有完全覆盖到全部,我们只是打了个擦边球,所以现在该轮到你来好好地利用这些丰富的资源来做自己想做的事了。

原文发布时间:2015-05-13

本文来自云栖合作伙伴“linux中国”

目录
相关文章
|
27天前
|
监控 Linux Shell
【Shell 命令集合 网络通讯 】Linux 配置和管理网络流量的形状 shapecfg命令 使用指南
【Shell 命令集合 网络通讯 】Linux 配置和管理网络流量的形状 shapecfg命令 使用指南
36 0
|
27天前
|
存储 Shell Linux
【Shell 命令集合 磁盘维护 】Linux 管理硬盘分区 mpartition命令使用教程
【Shell 命令集合 磁盘维护 】Linux 管理硬盘分区 mpartition命令使用教程
36 1
|
27天前
|
存储 监控 Shell
【Shell 命令集合 磁盘管理 】Linux 管理磁盘配额 quota命令使用教程
【Shell 命令集合 磁盘管理 】Linux 管理磁盘配额 quota命令使用教程
35 0
|
30天前
|
网络协议 Linux 网络安全
curl(http命令行工具):Linux下最强大的网络数据传输工具
curl(http命令行工具):Linux下最强大的网络数据传输工具
40 0
|
22天前
|
存储 算法 Linux
【Linux 应用开发 共享内存】深入理解和实践 ftruncate:共享内存的有效管理
【Linux 应用开发 共享内存】深入理解和实践 ftruncate:共享内存的有效管理
53 5
|
27天前
|
域名解析 网络协议 Linux
【Shell 命令集合 网络通讯 】Linux 设置和管理网络接口配置信息 netconfig命令 使用指南
【Shell 命令集合 网络通讯 】Linux 设置和管理网络接口配置信息 netconfig命令 使用指南
49 1
|
27天前
|
监控 Linux Shell
【Shell 命令集合 网络通讯 】Linux管理终端设备的登录过程 getty命令 使用指南
【Shell 命令集合 网络通讯 】Linux管理终端设备的登录过程 getty命令 使用指南
31 0
|
27天前
|
搜索推荐 Shell Linux
【Shell 命令集合 系统管理 】Linux 管理用户配置文件 userconf命令 使用指南
【Shell 命令集合 系统管理 】Linux 管理用户配置文件 userconf命令 使用指南
32 2
|
27天前
|
存储 监控 Shell
【Shell 命令集合 磁盘管理 】Linux 设置和管理用户或组的磁盘配额限制 edquota命令使用教程
【Shell 命令集合 磁盘管理 】Linux 设置和管理用户或组的磁盘配额限制 edquota命令使用教程
32 0
|
9天前
|
网络协议 Linux
在Linux中,管理和配置网络接口
在Linux中管理网络接口涉及多个命令,如`ifconfig`(在新版本中被`ip`取代)、`ip`(用于网络设备配置)、`nmcli`(NetworkManager的CLI工具)、`nmtui`(文本界面配置)、`route/ip route`(处理路由表)、`netstat/ss`(显示网络状态)和`hostnamectl/systemctl`(主机名和服务管理)。这些命令帮助用户启动接口、设置IP地址、查看连接和路由信息。不同发行版可能有差异,建议参考相应文档。
19 4