Cinder Volume 快照操作详解

需积分: 0 0 下载量 199 浏览量 更新于2024-08-04 收藏 229KB DOCX 举报
"58-Snapshot Volume 操作1" 在OpenStack环境中,Snapshot Volume是一项关键功能,它允许用户为卷创建一个即时状态的快照,以便在未来恢复或基于此快照创建新的卷。本资源主要探讨了Snapshot Volume的操作流程,涉及从用户发起请求到实际执行快照创建的各个步骤。 首先,用户(可能是OpenStack的终端用户或者第三方程序)通过向cinder-api发送请求来启动快照过程。这个请求通常是通过OpenStack的管理界面,如Project->Compute->Volumes进行的。用户选择要快照的特定卷(例如"vol-1"),并为之命名。需要注意的是,如果该卷已挂载到运行中的实例,创建快照可能会导致数据不一致。为了避免这种情况,建议暂停实例或确保实例在相对稳定的状态下进行快照操作。 接收到请求后,cinder-api会处理这个请求。cinder-api的日志记录在/opt/stack/logs/c-api.log中。然后,cinder-api通过内部的消息传递机制向cinder-volume发送快照创建的指令。由于cinder-api不会直接打印出发送消息的日志,因此通常需要查看源代码,比如在/opt/stack/cinder/cinder/volume/api.py中的_create_snapshot方法,以了解详细过程。 cinder-volume接收到消息后,开始执行实际的快照操作。对于LVM(Logical Volume Manager)卷提供商,它会调用lvcreate命令创建一个新的逻辑卷作为快照。这个快照不仅是一个独立的LV,还记录了与源LV的链接关系。通过运行lvdisplay命令,可以查看到快照及其与源卷的关系。同时,这个新的快照会在GUI的Volume Snapshots标签中显示,例如"vol-1-snapshot"。 创建快照的目的是为了能够恢复到创建快照时的卷状态,或者基于快照创建新的卷。当需要恢复时,用户可以通过这个快照创建一个新的卷,这个新卷将具有快照时刻的全部数据,而不会影响原始卷。这样,用户可以在不影响现有服务的情况下,进行数据备份或测试新的配置。 Snapshot Volume是OpenStack存储管理中的一个重要工具,它提供了灵活的数据保护和恢复选项,对于云环境中的数据管理和灾难恢复具有重要意义。通过理解这一操作流程,管理员可以更有效地利用这一功能来优化他们的存储策略。

ource Type VolumeSnapshot by Name new-snapshot-demo: snapshot new-snapshot-demo not bound I0714 08:37:27.829848 1 event.go:282] Event(v1.ObjectReference{Kind:"PersistentVolumeClaim", Namespace:"default", Name:"snapshot-demo-restore", UID:"8dd75b4b-9a16-4940-b078-7088a672a649", APIVersion:"v1", ResourceVersion:"2855605", FieldPath:""}): type: 'Warning' reason: 'ProvisioningFailed' failed to provision volume with StorageClass "evs-sc": error getting handle for DataSource Type VolumeSnapshot by Name new-snapshot-demo: snapshot new-snapshot-demo not bound I0714 08:38:13.719937 1 controller.go:1279] provision "default/snapshot-demo-restore" class "evs-sc": started I0714 08:38:13.720202 1 event.go:282] Event(v1.ObjectReference{Kind:"PersistentVolumeClaim", Namespace:"default", Name:"snapshot-demo-restore", UID:"8dd75b4b-9a16-4940-b078-7088a672a649", APIVersion:"v1", ResourceVersion:"2868531", FieldPath:""}): type: 'Normal' reason: 'Provisioning' External provisioner is provisioning volume for claim "default/snapshot-demo-restore" W0714 08:38:13.723506 1 controller.go:933] Retrying syncing claim "8dd75b4b-9a16-4940-b078-7088a672a649", failure 31 E0714 08:38:13.723534 1 controller.go:956] error syncing claim "8dd75b4b-9a16-4940-b078-7088a672a649": failed to provision volume with StorageClass "evs-sc": error getting handle for DataSource Type VolumeSnapshot by Name new-snapshot-demo: snapshot new-snapshot-demo not bound I0714 08:38:13.723562 1 event.go:282] Event(v1.ObjectReference{Kind:"PersistentVolumeClaim", Namespace:"default", Name:"snapshot-demo-restore", UID:"8dd75b4b-9a16-4940-b078-7088a672a649", APIVersion:"v1", ResourceVersion:"2868531", FieldPath:""}): type: 'Warning' reason: 'ProvisioningFailed' failed to provision volume with StorageClass "evs-sc": error getting handle for DataSource Type VolumeSnapshot by Name new-snapshot-demo: snapshot new-snapshot-demo not bound

2023-07-15 上传