查看: 1382|回复: 6

OpenStack Nova 的存储管理

  [复制链接]

39

主题

258

帖子

1555

积分

Gib

Rank: 5Rank: 5

贡献
0
技术
2
活跃
27
在线时间
13 小时
发表于 2014-6-16 17:52:12 | 显示全部楼层 |阅读模式
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/loop0No physical volume label read from /dev/loop0Physical volume "/dev/loop0" successfully createdVolume group "nova-volumes" successfully created# pvscanPV /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/iscsitargetISCSITARGET_ENABLE=true# service iscsitarget start* Starting iSCSI enterprise target service新建一个大小为 10GB 的 volume,检查一下是否创建成功(available),并把刚创建的 volume 附加到正在运行的 instance  上,附加成功后再次检查 volume 的状态就变成 in-use 了:
# euca-create-volume -s 10 -z novaVOLUME vol-00000003 10 creating (mycloud, None, None, None) 2011-08-30T13:20:04Z# euca-describe-volumesVOLUME vol-00000003 10 nova available (mycloud, node01, None, None) 2011-08-30T13:20:04Z# euca-describe-instancesRESERVATION r-i5927300 mycloud defaultINSTANCE 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-00000003VOLUME vol-00000003# euca-describe-volumesVOLUME 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-00000003VOLUME vol-00000003# euca-describe-volumesVOLUME vol-00000003 10 nova available (mycloud, node01, None, None) 2011-08-30T13:20:0

0

主题

379

帖子

5478

积分

等待验证会员

贡献
0
技术
0
活跃
-1
在线时间
0 小时
发表于 2014-7-22 17:41:30 | 显示全部楼层
三通IT学院是个学习技术的好地方,加油吧各位!

0

主题

38

帖子

250

积分

Kib

Rank: 3Rank: 3

贡献
0
技术
0
活跃
45
在线时间
3 小时
发表于 2015-3-5 10:57:11 | 显示全部楼层
每天来学习,跟三通一起成长!

0

主题

202

帖子

1363

积分

论坛贵宾VIP-永久权限

Rank: 8Rank: 8

贡献
0
技术
0
活跃
253
在线时间
21 小时
发表于 2015-8-12 10:51:25 | 显示全部楼层
每天看一点,成长多一点

1

主题

4393

帖子

2万

积分

Cib

Rank: 13Rank: 13Rank: 13Rank: 13

贡献
0
技术
0
活跃
6580
在线时间
234 小时
发表于 2016-10-12 21:30:01 | 显示全部楼层
每天看一点,成长多一点
使用 高级模式(可批量传图、插入视频等)
您需要登录后才可以回帖 登录 | 立即注册

快速回复 返回顶部 返回列表