之前完成了VolumeDelegateService,以及VmmDelegateService,于是最后是把这些模块进行整合。
在最后最后的模块vssService里,已知卷服务器们的ip地址,和vmm服务器的ip地址。
volumes表记录创建的volume的信息:
卷id 卷所在的卷服务器url 卷大小 卷的创建时间 卷的使用状态
volId serverUrl size createTime status
attachment表记录卷的绑定信息:
卷id vm id vm设备名
volId vmId vmDev
AttachVolume(volId, vmId, vmDev) => 已知卷id,虚拟机id,以及应该在虚拟机上挂载的设备名。
1.在本地volumes表里查找volId,并拿到卷服务器ip。
2.在attachment中查看它是否已经被attach出去。
3.在该服务器上将此卷iscsiExport出去。
4.在vmm服务器上iscsiLogin此设备。
5.在vmm服务器上attachVolume。
6.修改attachment表的volId情况。