- 查看日志,与 cinder-api 和 cinder-scheduler 执行方式类似,cinder-volume 也启动了一个 Flow 来完成 volume 创建工作,Flow 的名称为 volume_create_manager。
| | Jun 11 16:51:15 controller cinder-volume[29999]:
DEBUG cinder.volume.manager [None req-a6c9fadb-0364-43da-bbf0-d333c549aa74 admin None]
Flow 'volume_create_manager' (47f4261d-b806-421b-ba0b-3a8d632c5483)
transitioned into state 'RUNNING' from state 'PENDING'
{{(pid=30229) _flow_receiver /usr/local/lib/python2.7/dist-packages/taskflow/listeners/logging.py:145 |
|
- volume_create_manager 首先执行 ExtractVolumeRefTask, OnFailureRescheduleTask, ExtractVolumeSpecTask, NotifyVolumeActionTask 来为 volume 创建做准备。它们的源码位置位于
| /opt/stack/cinder/cinder
/volume/flows/manager
/create_volume.py |
| | Jun 11 16:51:15 controller cinder-volume[29999]:
DEBUG cinder.volume.manager [None req-a6c9fadb-0364-43da-bbf0-d333c549aa74 admin None]
Task 'cinder.volume.flows.manager.create_volume.ExtractVolumeRefTask;volume:create'
(3490974d-592b-43dd-a1c2-b27dc16810a6) transitioned into state 'RUNNING' from state 'PENDING'
{{(pid=30229) _task_receiver /usr/local/lib/python2.7/dist-packages/taskflow/listeners/logging.py:194
|
| Jun 11 16:51:16 controller cinder-volume[29999]:
DEBUG cinder.volume.manager [None req-a6c9fadb-0364-43da-bbf0-d333c549aa74 admin None]
Task 'cinder.volume.flows.manager.create_volume.ExtractVolumeRefTask;volume:create'
(3490974d-592b-43dd-a1c2-b27dc16810a6) transitioned into state 'SUCCESS' from state 'RUNNING'
{{(pid=30229) _task_receiver /usr/local/lib/python2.7/dist-packages/taskflow/listeners/logging.py:183 |
Extracts volume reference for given volume id | Jun 11 16:51:16 controller cinder-volume[29999]:
DEBUG cinder.volume.manager [None req-a6c9fadb-0364-43da-bbf0-d333c549aa74 admin None]
Task 'cinder.volume.flows.manager.create_volume.OnFailureRescheduleTask;volume:create'
(449b4b47-d536-4216-8881-21e1b4e7ef8b) transitioned into state 'RUNNING' from state 'PENDING'
{{(pid=30229) _task_receiver /usr/local/lib/python2.7/dist-packages/taskflow/listeners/logging.py:194
|
| Jun 11 16:51:16 controller cinder-volume[29999]:
DEBUG cinder.volume.manager [None req-a6c9fadb-0364-43da-bbf0-d333c549aa74 admin None]
Task 'cinder.volume.flows.manager.create_volume.OnFailureRescheduleTask;volume:create'
(449b4b47-d536-4216-8881-21e1b4e7ef8b) transitioned into state 'SUCCESS' from state 'RUNNING' ...
{{(pid=30229) _task_receiver /usr/local/lib/python2.7/dist-packages/taskflow/listeners/logging.py:183 |
Triggers a rescheduling request to be sent when reverting occurs. 在恢复发生时,触发重新scheduling请求 | Jun 11 16:51:16 controller cinder-volume[29999]:
DEBUG cinder.volume.manager [None req-a6c9fadb-0364-43da-bbf0-d333c549aa74 admin None]
Task 'cinder.volume.flows.manager.create_volume.ExtractVolumeSpecTask;volume:create'
(d66351f6-0906-4800-83af-c37087a8ef20) transitioned into state 'RUNNING' from state 'PENDING'
{{(pid=30229) _task_receiver /usr/local/lib/python2.7/dist-packages/taskflow/listeners/logging.py:194
|
| Jun 11 16:51:16 controller cinder-volume[29999]:
DEBUG cinder.volume.manager [None req-a6c9fadb-0364-43da-bbf0-d333c549aa74 admin None]
Task 'cinder.volume.flows.manager.create_volume.ExtractVolumeSpecTask;volume:create'
(d66351f6-0906-4800-83af-c37087a8ef20) transitioned into state 'SUCCESS' from state 'RUNNING' ...
{{(pid=30229) _task_receiver /usr/local/lib/python2.7/dist-packages/taskflow/listeners/logging.py:183
|
Extracts a spec of a volume to be created into a common structure | Jun 11 16:51:16 controller cinder-volume[29999]:
DEBUG cinder.volume.manager [None req-a6c9fadb-0364-43da-bbf0-d333c549aa74 admin None]
Task 'cinder.volume.flows.manager.create_volume.NotifyVolumeActionTask;volume:create, create.start'
(c8c7b578-72c1-4bcb-9723-ec31b53c9097) transitioned into state 'RUNNING' from state 'PENDING'
{{(pid=30229) _task_receiver /usr/local/lib/python2.7/dist-packages/taskflow/listeners/logging.py:194
|
| Jun 11 16:51:16 controller cinder-volume[29999]:
DEBUG cinder.volume.manager [None req-a6c9fadb-0364-43da-bbf0-d333c549aa74 admin None]
Task 'cinder.volume.flows.manager.create_volume.NotifyVolumeActionTask;volume:create, create.start'
(c8c7b578-72c1-4bcb-9723-ec31b53c9097) transitioned into state 'SUCCESS' from state 'RUNNING' ...
{{(pid=30229) _task_receiver /usr/local/lib/python2.7/dist-packages/taskflow/listeners/logging.py:183
|
Performs a notification about the given volume when called |
- 接下来 CreateVolumeFromSpecTask 执行 volume 创建任务Creates a volume from a provided specification
| | Jun 11 16:51:16 controller cinder-volume[29999]:
DEBUG cinder.volume.manager [None req-a6c9fadb-0364-43da-bbf0-d333c549aa74 admin None]
Task 'cinder.volume.flows.manager.create_volume.CreateVolumeFromSpecTask;volume:create'
(3fa20d37-5784-42a6-888f-6d801ef59072) transitioned into state 'RUNNING' from state 'PENDING'
{{(pid=30229) _task_receiver /usr/local/lib/python2.7/dist-packages/taskflow/listeners/logging.py:194
|
| Jun 11 16:51:16 controller cinder-volume[29999]:
INFO cinder.volume.flows.manager.create_volume [None req-a6c9fadb-0364-...]
Volume 1ab8967e-45fb-4ff4-941f-2f1293bdc031: being created as raw with specification:
{'status': u'creating', 'volume_size': 1, 'volume_name': u'volume-1ab8967e-45fb-4ff4-941f-2f1293bdc031'}
|
| Jun 11 16:51:16 controller cinder-volume[29999]:
DEBUG oslo_concurrency.processutils [None req-a6c9fadb-0364-43da-bbf0-d333c549aa74 admin None]
Running cmd (subprocess): sudo cinder-rootwrap /etc/cinder/rootwrap.conf env LC_ALL=C lvcreate
-T -V 1g -n volume-1ab8967e-45fb-4ff4-941f-2f1293bdc031
stack-volumes-lvmdriver-1/stack-volumes-lvmdriver-1-pool
{{(pid=30229) execute /usr/local/lib/python2.7/dist-packages/oslo_concurrency/processutils.py:372
|
| Jun 11 16:51:29 controller cinder-volume[29999]:
DEBUG cinder.volume.manager [None req-a6c9fadb-0364-43da-bbf0-d333c549aa74 admin None]
Task 'cinder.volume.flows.manager.create_volume.CreateVolumeFromSpecTask;volume:create'
(3fa20d37-5784-42a6-888f-6d801ef59072) transitioned into state 'SUCCESS' from state 'RUNNING' ...
{{(pid=30229) _task_receiver /usr/local/lib/python2.7/dist-packages/taskflow/listeners/logging.py:183 |
|
- 因为 volume provider 为 LVM, CreateVolumeFromSpecTask 通过 lvcreate 命令在 VG stack-volumes-lvmdriver-1 中创建了一个 1G 的 LV,cinder-volume 将这个 LV 作为volume。 新创建的 LV 命名为“volume-1ab8967e-45fb-4ff4-941f-2f1293bdc031”,其格式为“volume-<volume ID>”。
| 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45 | root@controller:~# cinder list
+--------------------------------------+-----------+-------+------+-------------+----------+-------------+
| ID | Status | Name | Size | Volume Type | Bootable | Attached to |
+--------------------------------------+-----------+-------+------+-------------+----------+-------------+
| 1ab8967e-45fb-4ff4-941f-2f1293bdc031 | available | vol-1 | 1 | lvmdriver-1 | false | |
+--------------------------------------+-----------+-------+------+-------------+----------+-------------+
root@controller:~# lvdisplay
--- Logical volume ---
LV Name stack-volumes-lvmdriver-1-pool
VG Name stack-volumes-lvmdriver-1
LV UUID ww01ba-CepW-YeCG-RHfk-g0w4-oZfk-NQlmq9
LV Write Access read/write
LV Creation host, time controller, 2019-06-08 12:16:27 +0800
LV Pool metadata stack-volumes-lvmdriver-1-pool_tmeta
LV Pool data stack-volumes-lvmdriver-1-pool_tdata
LV Status available
# open 2
LV Size 22.80 GiB
Allocated pool data 0.00%
Allocated metadata 10.51%
Current LE 5837
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 252:2
--- Logical volume ---
LV Path /dev/stack-volumes-lvmdriver-1/volume-1ab8967e-45fb-4ff4-941f-2f1293bdc031
LV Name volume-1ab8967e-45fb-4ff4-941f-2f1293bdc031
VG Name stack-volumes-lvmdriver-1
LV UUID YeeBPY-aEWW-lTwO-zMua-l7b8-edVu-Q1Sdrz
LV Write Access read/write
LV Creation host, time controller, 2019-06-11 16:51:25 +0800
LV Pool name stack-volumes-lvmdriver-1-pool
LV Status available
# open 0
LV Size 1.00 GiB
Mapped size 0.00%
Current LE 256
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 252:4 | 第一个Logical volume是安装完devstack就带的 |
- 最后,CreateVolumeOnFinishTask 完成扫尾工作On successful volume creation this will perform final volume actions
| | Jun 11 16:51:29 controller cinder-volume[29999]:
DEBUG cinder.volume.manager [None req-a6c9fadb-0364-43da-bbf0-d333c549aa74 admin None]
Task 'cinder.volume.flows.manager.create_volume.CreateVolumeOnFinishTask;volume:create, create.end'
(7b0b8d49-a629-4cde-a58b-f2d465399eec) transitioned into state 'RUNNING' from state 'PENDING'
{{(pid=30229) _task_receiver /usr/local/lib/python2.7/dist-packages/taskflow/listeners/logging.py:194
|
| Jun 11 16:51:29 controller cinder-volume[29999]:
DEBUG cinder.volume.manager [None req-a6c9fadb-0364-43da-bbf0-d333c549aa74 admin None]
Task 'cinder.volume.flows.manager.create_volume.CreateVolumeOnFinishTask;volume:create, create.end'
(7b0b8d49-a629-4cde-a58b-f2d465399eec) transitioned into state 'SUCCESS' from state 'RUNNING'
{{(pid=30229) _task_receiver /usr/local/lib/python2.7/dist-packages/taskflow/listeners/logging.py:183
|
|
- 至此,volume 成功创建,Flow volume_create_manager 结束。
| | Jun 11 16:51:29 controller cinder-volume[29999]:
DEBUG cinder.volume.manager [None req-a6c9fadb-0364-43da-bbf0-d333c549aa74 admin None]
Flow 'volume_create_manager' (47f4261d-b806-421b-ba0b-3a8d632c5483)
transitioned into state 'SUCCESS' from state 'RUNNING'
{{(pid=30229) _flow_receiver /usr/local/lib/python2.7/dist-packages/taskflow/listeners/logging.py:145 |
|
- 查看dashboard
| |