云盘创建及挂载

 

云盘介绍... 2

环境准备... 2

1.      安装cinder. 2

2.      创建卷组... 2

3.      设置启动加载卷组... 3

4.      使虚拟机可以挂载磁盘... 3

5.      创建云盘... 3

增加卷组空间... 3

 

云盘介绍

云盘提供持久、高性能的块存储服务,也可以挂载到虚拟机作为虚拟机的辅助存储空间来使用。它类似于亚马逊的EBSAmazon’s Elastic Block Storage)。我们可以将镜像文件写入到云盘中,使虚拟机从云盘启动。与EBS不同的是云盘不是一种类似于NFS共享存储的解决方案,目前,云盘在同一时刻只可以挂载在一个虚拟机上。

环境准备

OpenStack云盘组件中就是使用逻辑卷组nova-volumes,也就是OpenStack里只能使用这个卷组名。没有这个名字的卷组,nova-volume将不会正常启动,这也会导致nova-compute服务不能正常启动。

如果没有nova-volumes卷组,创建这个卷组,这需要一个或者多个物理卷,可以扩展卷组。如果没有物理设备,可以使用文件代替,一般作为实验用。

1.      安装cinder

sudo ./cinder.sh

2.      创建卷组

备注:使用文件代替,实验用

一:在/var/lib/cinder/volumes目录下创建名为cloud.img大小100G磁盘镜像文件

         # ddif=/dev/zero of=/var/lib/cinder/volumes/cloud.img bs=1 count=0 seek=100G

         # ls –lh(查看文件大小)

二:使用losetup将磁盘镜像文件虚拟成块磁盘

         # losetup/dev/loop2 /var/lib/cinder/volumes/cloud.img

三:进行磁盘分区

         # fdisk/dev/loop2

                    n      

                    p     

                    1      

                    Enter

                    Enter

                    t

                    8e

                    w

四:创建物理卷

      #pvcreate /dev/loop2

                   #pvdisplay

           五:创建卷组

                   #vgcreate hav-volumes /dev/loop2

                   #vgdisplay

3.      设置启动加载卷组

# vi /etc/rc.local

exit 0之前添加:

# losetup/dev/loop2 /var/lib/cinder/volumes/cloud.img

保存退出

4.      使虚拟机可以挂载磁盘

一.关闭tgt服务service tgt stop

二.开始iscsitarget服务:service iscsitarget start

三.修改/etc/cinder/cinder.conf文件:iscsi_helper =ietadm

四.删除软件apparmor

           apt-getremove apparmor;

apt-get autoremove apparmor

五.重启服务:service cinder-volume restart

5.      创建云盘

  • 设置环境变量

# cat creds

# source creds

  • 创建逻辑卷

# cinder create--display_name abc 5

  • 将逻辑卷挂载到运行中的虚拟机上

# nova list

# nova volume-list

# nova volume-attach <虚拟机ID> /dev/vdc

  • 在虚拟机系统磁盘管理中添加新硬盘

增加卷组空间

# dd if=/dev/zero of=/var/lib/cinder/volumes/cloud2.imgbs=1 count=0 seek=100G

# losetup /dev/loop3 /var/lib/cinder/volumes/cloud2.img

# fdisk /dev/loop3

# pvcreate /dev/loop3

# vgextend hav-volumes /dev/loop3

# vi/etc/rc.local

# vgdisplay