NFS作为一种网络文件系统,近些年随着云计算的发展也变得越来越受欢迎。因为云环境下会部署大量的虚拟机,而在物理机发生故障的时候,云服务商必须要保障虚拟机的安全性,即不能因为物理机的故障就停止虚拟机。这对于客户来说是零容忍的。这就要求在物理机发生问题的时候,云服务商可以在很短的时间内把虚拟机迁移到另一台物理机上,这也就是虚拟机的动态迁移。
经过一段时间的学习,就利用virt-manager来创建一台虚拟机:
硬件:
物理机1:223.129.0.132 源主机
物理机2:223.129.0.130 目的主机
物理机3:223.129.0.239 NFS 服务器
系统:CentOS 7
首先我们需要在物理机3部署NFS服务器并设置共享目录一般的Linux都已经安装了。这里假设已经安装好了nfs(具体如何安装并非本文重点)
1、编辑/etc/exports文件
![](https://images2015.cnblogs.com/blog/758933/201609/758933-20160920182047277-1643815172.png)
![](file:///C:/Users/chen/Documents/My%20Knowledge/temp/2a2dcfcd-0f27-418b-b452-9a6c7ae58b2d_128_files/acc78c4e-0a36-4693-9d33-4dd510ba3809.png)
这是nfs共享出的目录,可以看到这里有两部分,前面一部分是目录,后面一部分是权限(rw为读写,sync为同步,no_root_squash为开放root权限)
注意这里的目录已经存在且后面的参数不能写错,否则服务会无法启动
2、重启nfs服务
![](https://images2015.cnblogs.com/blog/758933/201609/758933-20160920182118965-183885993.png)
![](file:///C:/Users/chen/Documents/My%20Knowledge/temp/2a2dcfcd-0f27-418b-b452-9a6c7ae58b2d_128_files/7fa73533-7afb-46f3-9eed-2056688258e4.png)
这时候可以查看下nfs导出的目录
![](file:///C:/Users/chen/Documents/My%20Knowledge/temp/2a2dcfcd-0f27-418b-b452-9a6c7ae58b2d_128_files/d47c9570-501a-4bc7-a25b-0733d20a6832.png)
可以看到这三个目录已经被导出,那么剩下的就是配置客户机了。
3、挂载共享目录
![](https://images2015.cnblogs.com/blog/758933/201609/758933-20160920182143262-319826463.png)
![](file:///C:/Users/chen/Documents/My%20Knowledge/temp/2a2dcfcd-0f27-418b-b452-9a6c7ae58b2d_128_files/0ce4a1e6-7993-47a9-9072-b275d797e62e.png)
同理对/home/images目录进行挂载,注意这里只是暂时的挂载,重启之后就失效,如果永久挂载就需要修改/etc/fstab文件,但是这毕竟不是本地的一块硬盘,假如网络不通的情况下重启,那么很有可能重启不成功,所以这里建议手动挂载。
之后查看挂在情况:
![](https://images2015.cnblogs.com/blog/758933/201609/758933-20160920182236762-615923825.png)
![](file:///C:/Users/chen/Documents/My%20Knowledge/temp/2a2dcfcd-0f27-418b-b452-9a6c7ae58b2d_128_files/d16234fd-22a9-4112-b169-082d642b028d.png)
可以看到已经正确挂载。
4、virt-manager添加存储池
![](https://images2015.cnblogs.com/blog/758933/201609/758933-20160920182253277-1029922250.png)
![](file:///C:/Users/chen/Documents/My%20Knowledge/temp/2a2dcfcd-0f27-418b-b452-9a6c7ae58b2d_128_files/b35e7a88-8ecf-4c9c-aa30-f80736efebc7.png)
点击详情
![new_storepool1.png](file:///C:/Users/chen/Documents/My%20Knowledge/temp/2a2dcfcd-0f27-418b-b452-9a6c7ae58b2d_128_files/f5b48b89-a0e2-4eee-a5d7-c2ff7f79a020.png)
![](https://images2015.cnblogs.com/blog/758933/201609/758933-20160920182316121-1118803516.png)
点击+,添加存储池,注意Type选择NFS,然后这里name我们设置为NFSfile,下一步
![](file:///C:/Users/chen/Documents/My%20Knowledge/temp/2a2dcfcd-0f27-418b-b452-9a6c7ae58b2d_128_files/2e21a04e-b0dd-4e8d-8e29-3ae14bd52438.png)
![](https://images2015.cnblogs.com/blog/758933/201609/758933-20160920182416856-990968315.png)
点击完成
![](file:///C:/Users/chen/Documents/My%20Knowledge/temp/2a2dcfcd-0f27-418b-b452-9a6c7ae58b2d_128_files/56979e57-c003-41cf-9384-6d63cab47504.png)
![](https://images2015.cnblogs.com/blog/758933/201609/758933-20160920182431934-972309949.png)
可以看到已经把NFS服务器上的image共享目录挂载成功。同理挂载/home/iso文件夹。
那么这两个目录我们一个作为镜像原始文件夹,一个作为虚拟机硬盘(镜像)所在。但是假如我们直接使用ISO文件创建虚拟机,其分配的虚拟机硬盘空间存储位置默认就在/var/lib/libvirt/images,而此目录我们没有共享,所以会出错。所以我们就先在NFSFile存储池分配一个卷作为虚拟机存储位置
![](file:///C:/Users/chen/Documents/My%20Knowledge/temp/2a2dcfcd-0f27-418b-b452-9a6c7ae58b2d_128_files/212af274-ad53-400c-b82b-4dac8d30e37f.png)
![](https://images2015.cnblogs.com/blog/758933/201609/758933-20160920182506809-472968250.png)
然后我们就可以创建虚拟机了
但是注意在选择镜像的时候要选择我们在iso存储池中的镜像
![](https://images2015.cnblogs.com/blog/758933/201609/758933-20160920182706559-906680484.png)
![](file:///C:/Users/chen/Documents/My%20Knowledge/temp/2a2dcfcd-0f27-418b-b452-9a6c7ae58b2d_128_files/57baaa71-b2ec-48ab-ae1e-45bbccfb9350.png)
还有一个就是在分配存储的时候要选择我们前面创建的存储镜像
![](file:///C:/Users/chen/Documents/My%20Knowledge/temp/2a2dcfcd-0f27-418b-b452-9a6c7ae58b2d_128_files/b764338e-b1f9-4c5e-b2a4-9fa9d1d8b056.png)
![](https://images2015.cnblogs.com/blog/758933/201609/758933-20160920182721481-178825216.png)
剩下的就是正常的创建虚拟机的流程了,这里就不在赘述,不过可能会让多次输入NFS服务器的密码。
![newVM6.png](file:///C:/Users/chen/Documents/My%20Knowledge/temp/2a2dcfcd-0f27-418b-b452-9a6c7ae58b2d_128_files/ff8c75d5-5500-4670-9718-5e53389d8115.png)
这是刚创建好的虚拟机。。
其实这里的本质就是镜像存储在网络,其他的并无本质区别。