http://docs.openstack.org/user-guide/cli_nova_launch_instance_from_volume.html

http://docs.openstack.org/admin-guide-cloud/blockstorage-manage-volumes.html

Manage volumes

Volume-backed image

从image创建volume,当dirvier的volume clone快的话,性能要比其他store如file/swift好。

1 设置cinder为glance的存储后端:

glance_store section of the glance-api.conf file:

stores = file, http, swift, cinder

2显示 locations information

DEFAULT section of theglance-api.conf file:

show_multiple_locations = True

3 To enable the Block Storage services to create a new volume by cloning Image- Volume

DEFAULT section of the cinder.conf file. For example:

glance_api_version = 2

allowed_direct_url_schemes = cinder

4,让cinder upload-to-image来从image-Volume创建一个volume

back-end section of the cinder.conf file:

image_upload_use_cinder_backend = True

Creating a Volume-backed image

注册volume为 new Volume-backed image

$ glance image-create --disk-format raw --container-format bare --name <name>

$ glance location-add <image-uuid> --url cinder://<volume-uuid>

必须是raw和bare否则就存早glance的默认store中。

Note

Currently, the cinder store of the Image services does not support uploading and downloading of image data. By this limitation, Volume-backed images can only be used to create a new volume.

以cinder作为store的glance不支持image的upload/download,仅仅支持创建一个新volume。

Configure and use volume number weigher

http://docs.openstack.org/admin-guide-cloud/blockstorage_volume_number_weigher.html

cinder scheduler是根据free_capacity and allocated_capacity

但也可以volume 数量:

set the scheduler_default_weighers toVolumeNumberWeigher flag in the cinder.conf file

实例:

创建2个lvm backend,

在创建一个lvm type:

Define a volume type in Block Storage:

$ cinder type-create lvm

Create an extra specification that links the volume type to a back-end name:

$ cinder type-key lvm set volume_backend_name=LVM

创建6个1g的volume

$ cinder create --volume-type lvm 1

6个volume各自3个分布在2个backend上。

Migrate volumes

http://docs.openstack.org/admin-guide-cloud/blockstorage_volume_migration.html

cinder可以多个back-ends之前迁移volumes

流程如下:

  1. 如果storage可以自己migrate the volume,那它自己做,否则
  2. 2.       如果not attached, the Block Storage service创建一个volume并copy数据

 Note

While most back-ends support this function, not all do. See the driver documentation in the OpenStack Configuration Reference for more details.

  1. 如果 volume is attached, the Block Storage创建一个volume并calls Compute copy数据. 目前仅仅支持Compute libvirt driver.

以下例子中,2个back end,采用方案3.

# cinder get-pools

Note

Only Block Storage V2 API supports get-pools.

或者

# cinder-manage host list
server1@lvmstorage-1    zone1
server2@lvmstorage-2    zone1

$ cinder show 6088f80a-f116-4331-ad48-9afb0dfb196c

$ cinder migrate 6088f80a-f116-4331-ad48-9afb0dfb196c \
  server2@lvmstorage-2#lvmstorage-2

cinder show来查看迁移状态

 Note

Migrating volumes that have snapshots are currently not allowed.

Back up Block Storage service disks

使用LVM snapshot来创建 snapshots时,也可以用它来back up 你的volumes。使用LVM snapshot,你可以减少backup的size,它仅仅backup存在的数据而不是整个的volume。

Backup时volume不能被使用,必须数据都flush到guest文件系统,通常要求文件系统被unmounted,snapshot完成之后在mounted。

下面例子中,100 GB volume named volume-00000001只有4 GB 数据。se commands to back up only those 4 GB:

  • lvm2 command. Directly manipulates the volumes.
  • kpartx command. Discovers the partition table created inside the instance.
  • tar command. Creates a minimum-sized backup.
  • sha1sum command. Calculates the backup checksum to check its consistency.

You can apply this process to volumes of any size.

To back up Block Storage service disks

  1. Create a snapshot of a used volume
  • Use this command to list all volumes
o    # lvdisplay
o    # lvcreate --size 10G --snapshot --name volume-00000001-snapshot \
o      /dev/cinder-volumes/volume-00000001

The --sizeparameter defines the space that LVM reserves for the snapshot volume.

  • Run the lvdisplay command again to verify the snapshot:
o    --- Logical volume ---
o    LV Name                /dev/cinder-volumes/volume-00000001
o    VG Name                cinder-volumes
o    LV UUID                gI8hta-p21U-IW2q-hRN1-nTzN-UC2G-dKbdKr
o    LV Write Access        read/write
o    LV snapshot status     source of
o                     /dev/cinder-volumes/volume-00000026-snap [active]
o    LV Status              available
o    # open                 1
o    LV Size                15,00 GiB
o    Current LE             3840
o    Segments               1
o    Allocation             inherit
o    Read ahead sectors     auto
o    - currently set to     256
o    Block device           251:13
o     
o    --- Logical volume ---
o    LV Name                /dev/cinder-volumes/volume-00000001-snap
o    VG Name                cinder-volumes
o    LV UUID                HlW3Ep-g5I8-KGQb-IRvi-IRYU-lIKe-wE9zYr
o    LV Write Access        read/write
o    LV snapshot status     active destination for /dev/cinder-volumes/volume-00000026
o    LV Status              available
o    # open                 0
o    LV Size                15,00 GiB
o    Current LE             3840
o    COW-table size         10,00 GiB
o    COW-table LE           2560
o    Allocated to snapshot  0,00%
o    Snapshot chunk size    4,00 KiB
o    Segments               1
o    Allocation             inherit
o    Read ahead sectors     auto
o    - currently set to     256
o    Block device           251:14

  1. Partition table discovery

为了tar 打包snapshot,使用kpartx 发现分区

o    $ ls /dev/mapper/nova*

可以看见 cinder--volumes-volume--00000001--snapshot1 partition.,如果volume上有多个分区还可以看见: cinder--volumes-volume--00000001--snapshot2, cinder--volumes-volume--00000001--snapshot3, and so on.

  • Mount your partition
o    # mount /dev/mapper/cinder--volumes-volume--volume--00000001--snapshot1 /mnt

  1. Use the tar command to create archives

Create a backup of the volume:

$ tar --exclude="lost+found" --exclude="some/data/to/exclude" -czf \
  volume-00000001.tar.gz -C /mnt/ /backup/destination

只会打包已有的数据

  1. Checksum calculation I
  2. After work cleaning
$ sha1sum volume-00000001.tar.gz > volume-00000001.checksum

  • Unmount the volume:
  • Delete the partition table:
  • Remove the snapshot:
o    $ umount /mnt

o    $ kpartx -dv /dev/cinder-volumes/volume-00000001-snapshot

o    $ lvremove -f /dev/cinder-volumes/volume-00000001-snapshot

Repeat these steps for all your volumes.

  1. Automate your backups
    可以用这个script来自动backup

https://github.com/Razique/BashStuff/blob/master/SYSTEMS/OpenStack/SCR_5005_V01_NUAC-OPENSTACK-EBS-volumes-backup.sh

和cinder backup的关系:

这里是backup cinder 服务的disks

下面backup volumes:

Back up and restore volumes

$ cinder backup-create [--incremental] [--force] VOLUME

Volume在使用中需要force flag

The incremental and force flags are only available for block storage API v2.

The force flag is new in OpenStack Liberty.

The incremental backup is based on a parent backup。

第一次backup必须是full backup。

$ cinder backup-restore BACKUP_ID

Because volume backups are dependent on the Block Storage database, you must also back up your Block Storage database regularly to ensure data recovery.

DB也需要定期backup来保存backup metadata

如果只想backup 特定的一些可以you can export and save the metadata of selected volume backups

Backup 后端默认的是swift ,可以配置NFS:

backup_driver = cinder.backup.drivers.nfs

backup_share = HOST:EXPORT_PATH

backup_compression_algorithm = zlib

backup_sha_block_size_bytes = 32768

backup_file_size = 1999994880

Export and import backup metadata

http://docs.openstack.org/admin-guide-cloud/blockstorage_volume_backups_export_import.html

$ cinder backup-export BACKUP_ID

$ cinder backup-import METADATA

Use LIO iSCSI support¶

The default mode for the iscsi_helper tool is tgtadm. To use LIO iSCSI, install the python-rtslib package, and set iscsi_helper=lioadm in the cinder.conf file.

Once configured, you can use the cinder-rtstool command to manage the volumes. This command enables you to create, delete, and verify volumes and determine targets and add iSCSI initiators to the system.

Consistency groups

http://docs.openstack.org/admin-guide-cloud/blockstorage-consistency-groups.html

用来支持group snapshot

A consistency group can only contain volumes hosted by the same back end.

Create a consistency group:

cinder consisgroup-create

[--name name]

[--description description]

[--availability-zone availability-zone]

volume-types

Create a volume and add it to a consistency group:

Create a snapshot for a consistency group:

$ cinder cgsnapshot-create 1de80c27-3b2f-47a6-91a7-e867cbe36462

当一个volume在一个sg中,不支持一下操作:

  • Volume migration.
  • Volume retype.
  • Volume deletion.

Oversubscription in thin provisioning

http://docs.openstack.org/admin-guide-cloud/blockstorage_over_subscription.html

Configure an NFS storage back end

http://docs.openstack.org/admin-guide-cloud/blockstorage_nfs_backend.html

NFS如何提供block volume:

cinder.volume.drivers.nfs.NfsDriver

def _create_sparsed_file(self, path, size):

"""Creates file with 0 disk usage."""

self._execute('truncate', '-s', '%sG' % size,

path, run_as_root=True)

def _create_regular_file(self, path, size):

"""Creates regular file of given size. Takes a lot of time for large

        files.

        """

block_size_mb = 1

block_count = size * units.GiB / (block_size_mb * units.MiB)

self._execute('dd', 'if=/dev/zero', 'of=%s' % path,

'bs=%dM' % block_size_mb,

'count=%d' % block_count,

run_as_root=True)

转载于:https://www.cnblogs.com/allcloud/p/5075829.html

volume image相关推荐

  1. Docker 入门系列(7)- Dockerfile 使用(FROM、RUN、CMD、EXPOSE、ENV、ADD、COPY、ENTRYPOINT、VOLUME、WORKDIR)

    Dockerfile 是一个文本格式的配置文件,用户可以使用 Dockerfile 来快速创建自定义的镜像. 1. 基本结构 Dockerfile 由一行行命令语句组成,并且支持以 # 开头的注释行. ...

  2. ATS上的hosting.config和volume.config文件解读

    为了更加灵活和精细地规划缓存磁盘的空间使用,我们可以更进一步地使用hosting.config和volume.config文件.   hosting.config 描述域名和分卷的对应关系: host ...

  3. docker mysql data volume_Docker 持久化存储, Data Volume/Bind Mounting

    docker容器, 再启动之后 我们可以对其进行 修改删除等等. 如果是一个数据库的容器, 里面的数据 不想随着这个容器的消失, 而消失.  就需要持久化数据存储. Data Volume 这是 do ...

  4. U盘中毒,无法删除System Volume Information文件夹

    情景:U盘中毒,U盘内的文件夹名称变成.exe后缀,且多出一个名为System Volume Information的文件夹,对U盘进行格式化后,所有文件消失,当拔出U盘,再次插入电脑时,发现Syst ...

  5. Volume是如何工作的

    在这篇文章中,我会尽最大的努力来解释Volume是如何工作的,并展示一些最佳实践.这篇文章主要是针对那些对Volume不了解的Docker用户,当然有经验的用户也可以通过本文了解一些Volume的细节 ...

  6. Restore Volume 操作 - 每天5分钟玩转 OpenStack(60)

    前面我们 backup 了 voluem,今天我们将讨论如何 restore volume. restore 的过程其实很简单,两步走: 在存储节点上创建一个空白 volume. 将 backup 的 ...

  7. Infragistics NetAdvantage 2006 Volume 2 CLR 2.0曲折安装

    上个月看到Infragistics NetAdvantage 2006 Volume 2 CLR 2.0(新特性)新鲜出炉,就一直想安装试用.昨天qq上得知已经有人在使用了,赶紧google一个dow ...

  8. Attach Volume 操作(Part II) - 每天5分钟玩转 OpenStack(54)

    上一节我们讨论了 attach volume 操作中 cinder-api 的工作,本节讨论 cinder-volume 和 nova-compute 如何将 volume attach 到 Inst ...

  9. U盘中毒了?教你如何删除System Volume Information这个顽固文件夹

    不得不说cmd命令很好用呢.最近我的U盘中毒了,格式化都删除不了System Volume Information这个顽固的文件夹,真心伤不起哇!还好现在解决了问题.看来以后得好好对待U盘,不能乱用了 ...

  10. 多视图立体几何PatchMatchStereo:DSI与Cost Volume

    在上一篇文章:传统多视图立体算法:PatchMatchStereo详解[1]中,我们谈到利用在视差空间对每一个像素随机一个视差平面,然后通过传播这个视差平面参数,使得每一个像素经过周围像素影响以得到更 ...

最新文章

  1. Leetcode PHP题解--D14 561. Array Partition I
  2. 修复handsontable自动完成不支持中文的bug
  3. 解决dubbo问题:forbid consumer(2)
  4. VS2013 VS2015 VS2017调试出现无法启动iis express web服务器
  5. linux删除之前的文件在哪里,Linux下,如何将最后修改时间在某个时间之前的文件删除去?...
  6. @PathVariable注解使用
  7. [渝粤教育] 西南科技大学 建筑制图 在线考试复习资料
  8. 选取文档元素的API
  9. JS面向对象——class定义类、类的构造函数、实例方法、访问器方法、静态方法、继承、super、多态
  10. LeetCode 738. 单调递增的数字(贪心)
  11. java sql2005驱动_java.sql.SQLException:找不到适用于jdbc:microsoft:sqlserver的驱动程序...
  12. SQL2005安装及链接
  13. 关于SVN代码提交粒度和频率的思考
  14. Sequence I
  15. Mac 下svn客户端安装
  16. 《路由协议与交换技术》重点知识总结(路由交换知识点)
  17. 生活之游戏中的心理学
  18. 华数机器人旋转编程_华数机器人离线编程软件简介与InteRobot2018 新增功能
  19. 阿里字体库的运用(网站上面的购物车或者一些小图标 箭头)
  20. python统计元音字母个数_计算Python中的元音(Counting vowels in python)

热门文章

  1. hdu2191(多重背包)
  2. www.SQnote.cn
  3. [Java] 蓝桥杯ALGO-122 算法训练 未名湖边的烦恼
  4. 第七届 蓝桥杯 省赛 第六题 方格填数(next_permutation)
  5. 蓝桥杯 ALGO-43 算法训练 A+B Problem
  6. weblogic 解决线程阻塞
  7. weblogic的安装、目录结构、启动
  8. HP11.31安装11.2.0.3实施手册
  9. compile php with openssl on mac osx error 填坑
  10. 图片上传,CheckBox等用户控件的应用代码