OpenStack Nova 的存储管理

运维 系统运维 OpenStack
OpenStack Nova 创建出来的 instance 是没有永久存储的,也就是说关闭 instance 后所有数据都会丢失,所以需要 storage 来保存每个 instance 的数据。OpenStack Nova 使用 nova-volume 服务来管理存储,实现和 Amazon 的 Elastic Block Storage (EBS) 不同,nova-volume 提供的是一种基于 Linux LVM 的 iSCSI 解决方案。

 OpenStack Nova 创建出来的 instance 是没有永久存储的,也就是说关闭 instance 后所有数据都会丢失,所以需要 storage 来保存每个 instance 的数据。这种把 instance 和 storage 分开的设计方法很聪明,这样上面运行的 instance 有了很大的灵活性,并且对 storage 的管理也很方便,使得 instance 在不同服务器 node 之间的在线迁移(live migration)更为方便和简单。OpenStack Nova 使用 nova-volume 服务来管理存储,实现和 Amazon 的 Elastic Block Storage (EBS) 不同,nova-volume 提供的是一种基于 Linux LVM 的 iSCSI 解决方案。

Nova-volume 需要一个单独的分区做 LVM,如果系统上没有多余的分区做 LVM 的话可以用一个文件来充当硬盘,当然这种方法只能自己测试玩玩,应用到生产环境最好还是用物理硬盘上的分区做 LVM.

新建一个文件来做 LVM:

# dd if=/dev/zero of=/home/vpsee/nova-volumes.img bs=1M seek=100000 count=0
# losetup -f nova-volumes.img
# losetup -a
/dev/loop0: [fb00]:24120015 (/home/vpsee/nova-volumes.img)
# vgcreate nova-volumes /dev/loop0
No physical volume label read from /dev/loop0
Physical volume "/dev/loop0" successfully created
Volume group "nova-volumes" successfully created
# pvscan
PV /dev/sda5 VG node01 lvm2 [465.52 GiB / 48.00 MiB free]
PV /dev/loop0 VG nova-volumes lvm2 [97.65 GiB / 77.65 GiB free]
Total: 2 [563.17 GiB] / in use: 2 [563.17 GiB] / in no VG: 0 [0 ]

默认情况下 iscsitarget 软件包安装后并没有自动启动,所以需要手动配置和启动 iscsitarget 服务:

# vi /etc/default/iscsitarget
ISCSITARGET_ENABLE=true
# service iscsitarget start
* Starting iSCSI enterprise target service

新建一个大小为 10GB 的 volume,检查一下是否创建成功(available),并把刚创建的 volume 附加到正在运行的 instance 上,附加成功后再次检查 volume 的状态就变成 in-use 了:

# euca-create-volume -s 10 -z nova
VOLUME vol-00000003 10 creating (mycloud, None, None, None) 2011-08-30T13:20:04Z
# euca-describe-volumes
VOLUME vol-00000003 10 nova available (mycloud, node01, None, None) 2011-08-30T13:20:04Z
# euca-describe-instances
RESERVATION r-i5927300 mycloud default
INSTANCE i-00000031 ami-00000006 172.16.39.224 172.16.39.224 running mykey.priv (mycloud, node01) 0 m1.tiny 2011-08-26T07:12:57Z nova
# euca-attach-volume -i i-00000031 -d /dev/vdb vol-00000003
VOLUME vol-00000003
# euca-describe-volumes
VOLUME vol-00000003 10 nova in-use (mycloud, node01, i-00000031[node01], /dev/vdb) 2011-08-30T13:20:04Z

如果想从运行的 instance 上卸载 volume 的话用 euca-detach-volume,卸载成功的话就会看到 volume 的状态又变回 available 了:

# euca-detach-volume vol-00000003
VOLUME vol-00000003
# euca-describe-volumes
VOLUME vol-00000003 10 nova available (mycloud, node01, None, None) 2011-08-30T13:20:04Z

原文:http://www.vpsee.com/2011/09/openstack-nova-storage-management/

【编辑推荐】

  1. 在CentOS上安装和配置OpenStack Nova
  2. HP加入OpenStack云计算大潮
  3. Ubuntu将告别Eucalyptus 投奔OpenStack
责任编辑:黄丹 来源: vpsee.com
相关推荐

2014-12-11 11:30:11

openstacknovadocker

2015-04-27 13:34:03

OpenStackNova在线升级

2012-02-03 09:22:57

2011-11-29 10:24:17

OpenStackNova

2015-03-16 10:16:33

协同并发NovaOpenstack

2011-05-24 09:33:40

UbuntuOpenStackNova

2011-08-17 10:19:30

CentOSOpenStack N

2011-07-18 13:35:38

PuppetOpenStack

2015-05-12 10:31:25

openstack开源新特性分析

2013-04-01 09:55:03

OpenStack存储

2013-12-11 21:44:01

OpenStack对象Swift

2017-06-12 17:09:59

OpenStack存储SSD

2013-12-11 21:48:38

OpenStack

2012-10-18 10:59:21

OpenStackNova项目vSphere

2012-07-12 16:00:32

OpenStackSwift架构

2012-02-01 09:21:23

Hadoop分布式文件系统OpenStack

2017-06-09 14:30:31

Openstack N对象模型数据库

2012-09-11 17:10:40

OpenStack

2012-09-13 11:06:03

IBMdW

2012-10-30 09:59:04

RackspaceOpenStack
点赞
收藏

51CTO技术栈公众号