1、用命令行創建一個flavor
查看幫助命令:
[root@controllerwn]# nova help flavor-create
usage: nova flavor-create [--ephemeral <ephemeral>][--swap <swap>]
[--rxtx-factor <factor>] [--is-public <is-public>]
<name> <id> <ram> <disk> <vcpus>
新建flavor:
[root@controllerwn]# nova flavor-create m1.wn 6 2048 20 1
+----+-------+-----------+------+-----------+------+-------+-------------+-----------+
| ID | Name | Memory_MB | Disk | Ephemeral | Swap | VCPUs| RXTX_Factor | Is_Public |
+----+-------+-----------+------+-----------+------+-------+-------------+-----------+
| 6 | m1.wn | 2048 | 20 | 0 | | 1 | 1.0 | True |
+----+-------+-----------+------+-----------+------+-------+-------------+-----------+
這邊,我的flavor的disk建的太大了,導致我下面磁盤不夠,無法用這個flavor來啓動vm。
資源不夠會報錯NoValidHost: No valid host was found. There arenot enough hosts available.
2、用命令行上傳一個image:
[root@controllerwn]# glance image-create --name "cirros-wn-123" --file/var/wn/cirros-0.3.4-x86_64-disk.img --disk-format ami --container-format ovf--visibility public --progress
[=============================>]100%
+------------------+--------------------------------------+
| Property | Value |
+------------------+--------------------------------------+
| checksum |354403308a54291f3d7b3c464bac70a6 |
| container_format| ovf |
| created_at | 2015-12-11T02:30:42Z |
| disk_format | ami |
| id |4de7212e-2ad5-411e-a2d2-32a8204039fe |
| min_disk | 0 |
| min_ram | 0 |
| name | cirros-wn-123 |
| owner | 4bbba9b45a054efaa91c18edf8136fe0 |
| protected | False |
| size | 2692162 |
| status | active |
| tags | [] |
| updated_at | 2015-12-11T02:30:42Z |
| virtual_size | None |
| visibility | public |
+------------------+--------------------------------------+
3、基於image用cinder創建一個啓動盤
這一步其實沒什麼作用,創建一個vm,必須先指定一個image,然後根據image生成的volume來啓動,不能直接根據自己創建的volume直接啓動。
顯示所有的volume
[root@controllerwn]# cinder list
+--------------------------------------+--------+------+------+-------------+----------+--------------------------------------+
| ID | Status | Name | Size |Volume Type | Bootable | Attached to |
+--------------------------------------+--------+------+------+-------------+----------+--------------------------------------+
|4143d374-84a0-4a17-b903-55456ae7c0f1 | in-use | - | 1 | - | true |62ad7732-3f8b-4141-9f7b-02b0eab0976b |
+--------------------------------------+--------+------+------+-------------+----------+--------------------------------------+
[root@controllerwn]# cinder create --image-id 4de7212e-2ad5-411e-a2d2-32a8204039fe --name wn-volume1 1
+---------------------------------------+--------------------------------------+
| Property | Value |
+---------------------------------------+--------------------------------------+
| attachments | [] |
| availability_zone | nova |
| bootable | false |
| consistencygroup_id | None |
| created_at | 2015-12-11T03:10:37.000000 |
| description | None |
| encrypted | False |
| id |0b21bc62-9515-4aa1-b171-2ac46822d2cd |
| metadata | {} |
| multiattach | False |
| name | wn-volume1 |
| os-vol-host-attr:host | None |
| os-vol-mig-status-attr:migstat | None |
| os-vol-mig-status-attr:name_id | None |
| os-vol-tenant-attr:tenant_id | 4bbba9b45a054efaa91c18edf8136fe0 |
| os-volume-replication:driver_data | None |
|os-volume-replication:extended_status | None |
| replication_status | disabled |
| size | 1 |
| snapshot_id | None |
| source_volid | None |
| status | creating |
| user_id | b316af41f3544050a0955a8b6c138562 |
| volume_type | None |
+---------------------------------------+--------------------------------------+
[root@controllerwn]# cinder list
+--------------------------------------+--------+------------+------+-------------+----------+--------------------------------------+
| ID | Status | Name | Size | Volume Type | Bootable | Attached to |
+--------------------------------------+--------+------------+------+-------------+----------+--------------------------------------+
|0b21bc62-9515-4aa1-b171-2ac46822d2cd |error | wn-volume1 | 1 | - | false | |
|4143d374-84a0-4a17-b903-55456ae7c0f1 | in-use | - | 1 | - | true | 62ad7732-3f8b-4141-9f7b-02b0eab0976b |
+--------------------------------------+--------+------------+------+-------------+----------+--------------------------------------+
這邊遇到了一個錯誤:
新創建的一個image,用來創建volume的時候,報了這個錯誤,
ImageCopyFailure:Failed to copy image to volume: qemu-img: error while reading sector 24576:Input/output error
原因是,之前上傳的那個鏡像沒有下載完整,要重新下。
重新上傳鏡像,然後創建volume之後的狀態:
[root@controllerwn]# cinder list
+--------------------------------------+-----------+------------+------+-------------+----------+--------------------------------------+
| ID | Status | Name | Size | Volume Type | Bootable | Attached to |
+--------------------------------------+-----------+------------+------+-------------+----------+--------------------------------------+
| 4143d374-84a0-4a17-b903-55456ae7c0f1| in-use | - | 1 | - | true |62ad7732-3f8b-4141-9f7b-02b0eab0976b |
|c1e44db7-0f6c-48ff-84e8-cd0fd9c8e177 | available | wn-volume1 | 1 | - | true | |
+--------------------------------------+-----------+------------+------+-------------+----------+--------------------------------------+
4、用命令行創建租戶網絡(包括子網)
[root@controllerwn]# neutron net-create wn-net
Created a newnetwork:
+---------------------------+--------------------------------------+
| Field | Value |
+---------------------------+--------------------------------------+
|admin_state_up | True |
| id |29a2688f-3bfc-4122-a48c-130fd380d961 |
| mtu | 0 |
| name | wn-net |
|provider:network_type | gre |
|provider:physical_network | |
|provider:segmentation_id | 2 |
|router:external | False |
| shared | False |
| status | ACTIVE |
| subnets | |
| tenant_id | 4bbba9b45a054efaa91c18edf8136fe0 |
+---------------------------+--------------------------------------+
[root@controllerwn]# neutron subnet-create wn-net 192.168.1.0/24 --name wn-subnet --gateway192.168.1.1
Created a newsubnet:
+-------------------+--------------------------------------------------+
| Field | Value |
+-------------------+--------------------------------------------------+
|allocation_pools | {"start": "192.168.1.2","end": "192.168.1.254"} |
| cidr | 192.168.1.0/24 |
|dns_nameservers | |
| enable_dhcp | True |
| gateway_ip | 192.168.1.1 |
| host_routes | |
| id |40c85906-6bf7-4e59-8647-660f9b0b6840 |
| ip_version | 4 |
| ipv6_address_mode| |
| ipv6_ra_mode | |
| name | wn-subnet |
| network_id |29a2688f-3bfc-4122-a48c-130fd380d961 |
|subnetpool_id | |
| tenant_id |4bbba9b45a054efaa91c18edf8136fe0 |
+-------------------+--------------------------------------------------+
5、創建vm
指定image創建vm
[root@controllernova]# nova boot --flavor m1.tiny --nicnet-id=29a2688f-3bfc-4122-a48c-130fd380d961 --security-groups default--block-device id=9bf66ed1-38b0-477f-b57d-8553423d1751,source=image,dest=volume,device=vda,size=1,bootindex=0,shutdown=preservevm2
+--------------------------------------+-------------------------------------------------+
| Property | Value |
+--------------------------------------+-------------------------------------------------+
|OS-DCF:diskConfig |MANUAL |
|OS-EXT-AZ:availability_zone | nova |
|OS-EXT-SRV-ATTR:host |- |
|OS-EXT-SRV-ATTR:hypervisor_hostname |- |
| OS-EXT-SRV-ATTR:instance_name | instance-00000010 |
|OS-EXT-STS:power_state |0 |
|OS-EXT-STS:task_state |scheduling |
|OS-EXT-STS:vm_state |building |
|OS-SRV-USG:launched_at |- |
|OS-SRV-USG:terminated_at |- |
| accessIPv4 | |
| accessIPv6 | |
| adminPass | 2QD8Rfa5enWq |
| config_drive | |
| created |2015-12-11T08:17:35Z |
| flavor | m1.tiny (1) |
| hostId | |
| id |29ff692d-c4b6-4427-b065-406467f0c0bf |
| image | Attempt toboot from volume - no image supplied |
| key_name | - |
| metadata | {} |
| name | vm2 |
|os-extended-volumes:volumes_attached | [] |
| progress | 0 |
|security_groups |default |
| status | BUILD |
| tenant_id | 4bbba9b45a054efaa91c18edf8136fe0 |
| updated |2015-12-11T08:17:36Z |
| user_id |b316af41f3544050a0955a8b6c138562 |
+--------------------------------------+-------------------------------------------------+
[root@controllernova]# nova show vm2
+--------------------------------------+----------------------------------------------------------+
| Property | Value |
+--------------------------------------+----------------------------------------------------------+
|OS-DCF:diskConfig |MANUAL |
| OS-EXT-AZ:availability_zone | nova |
|OS-EXT-SRV-ATTR:host |controller |
|OS-EXT-SRV-ATTR:hypervisor_hostname |controller |
|OS-EXT-SRV-ATTR:instance_name |instance-00000010 |
|OS-EXT-STS:power_state |1 |
|OS-EXT-STS:task_state | - |
|OS-EXT-STS:vm_state |active |
|OS-SRV-USG:launched_at |2015-12-11T08:17:50.000000 |
|OS-SRV-USG:terminated_at |- |
| accessIPv4 | |
| accessIPv6 | |
| config_drive | |
| created |2015-12-11T08:17:35Z |
| flavor | m1.tiny(1) |
| hostId |7bf00cfc461cc88befd9ed747f1311fbc48080f2b5b507ca86ef5c78 |
| id | 29ff692d-c4b6-4427-b065-406467f0c0bf |
| image | Attempt toboot from volume - no image supplied |
| key_name | - |
| metadata | {} |
| name | vm2 |
|os-extended-volumes:volumes_attached | [{"id": "ba71501f-cf12-4a2f-9986-7ffa58533171"}] |
| progress | 0 |
|security_groups |default |
| status | ACTIVE |
| tenant_id |4bbba9b45a054efaa91c18edf8136fe0 |
| updated |2015-12-11T08:17:50Z |
| user_id |b316af41f3544050a0955a8b6c138562 |
| wn-netnetwork |192.168.1.5 |
+--------------------------------------+----------------------------------------------------------+
[root@controllernova]# nova delete vm2
指定volume創建vm
[root@controllernova]# nova boot --flavor m1.tiny --nicnet-id=29a2688f-3bfc-4122-a48c-130fd380d961 --security-groups default--block-deviceid=ba71501f-cf12-4a2f-9986-7ffa58533171,source=volume,dest=volume,device=vda,bootindex=0,shutdown=preservevm2
+--------------------------------------+--------------------------------------------------+
| Property | Value |
+--------------------------------------+--------------------------------------------------+
|OS-DCF:diskConfig |MANUAL |
| OS-EXT-AZ:availability_zone | nova |
|OS-EXT-SRV-ATTR:host |- |
|OS-EXT-SRV-ATTR:hypervisor_hostname |- |
|OS-EXT-SRV-ATTR:instance_name |instance-00000011 |
|OS-EXT-STS:power_state |0 |
|OS-EXT-STS:task_state |scheduling |
|OS-EXT-STS:vm_state |building |
|OS-SRV-USG:launched_at |- |
|OS-SRV-USG:terminated_at |- |
| accessIPv4 | |
| accessIPv6 | |
| adminPass | XW2C9guDm3TZ |
| config_drive | |
| created |2015-12-11T08:20:50Z |
| flavor | m1.tiny(1) |
| hostId | |
| id |711e7c39-ca96-4a01-8201-e8416061a1b2 |
| image | Attempt toboot from volume - no image supplied |
| key_name | - |
| metadata | {} |
| name | vm2 |
|os-extended-volumes:volumes_attached | [{"id":"ba71501f-cf12-4a2f-9986-7ffa58533171"}] |
| progress | 0 |
|security_groups |default |
| status | BUILD |
| tenant_id |4bbba9b45a054efaa91c18edf8136fe0 |
| updated |2015-12-11T08:20:50Z |
| user_id |b316af41f3544050a0955a8b6c138562 |
+--------------------------------------+--------------------------------------------------+
創建snapshot
[root@controllernova]# nova volume-snapshot-createba71501f-cf12-4a2f-9986-7ffa58533171 --display-name snapshot1
ERROR (BadRequest):Invalid volume: Volume ba71501f-cf12-4a2f-9986-7ffa58533171 status must beavailable, but current status is: in-use. (HTTP 400) (Request-ID:req-90be2b74-dee5-4e42-8029-d9c7f5df913f)
[root@controllernova]# nova volume-snapshot-createba71501f-cf12-4a2f-9986-7ffa58533171 --display-name snapshot1
+-------------+--------------------------------------+
| Property | Value |
+-------------+--------------------------------------+
| created_at | 2015-12-11T09:26:47.309414 |
| description |- |
| id |03fd2c2e-fc04-47af-bb75-2b5a250d531d |
| metadata | {} |
| name | snapshot1 |
| size | 1 |
| status | creating |
| volume_id | ba71501f-cf12-4a2f-9986-7ffa58533171 |
+-------------+--------------------------------------+
指定snapshot創建vm
[root@controllernova]# nova boot --flavor m1.tiny --nic net-id=29a2688f-3bfc-4122-a48c-130fd380d961--security-groups default --block-deviceid=03fd2c2e-fc04-47af-bb75-2b5a250d531d,source=snapshot,dest=volume,device=vda,bootindex=0,shutdown=preservevm2
+--------------------------------------+-------------------------------------------------+
| Property | Value |
+--------------------------------------+-------------------------------------------------+
|OS-DCF:diskConfig | MANUAL |
|OS-EXT-AZ:availability_zone |nova |
|OS-EXT-SRV-ATTR:host |- |
|OS-EXT-SRV-ATTR:hypervisor_hostname |- |
|OS-EXT-SRV-ATTR:instance_name |instance-00000017 |
|OS-EXT-STS:power_state |0 |
| OS-EXT-STS:task_state | scheduling |
|OS-EXT-STS:vm_state |building |
|OS-SRV-USG:launched_at |- |
|OS-SRV-USG:terminated_at |- |
| accessIPv4 | |
| accessIPv6 | |
| adminPass | cFEUWW8LcKpM |
| config_drive | |
| created | 2015-12-11T09:27:42Z |
| flavor | m1.tiny(1) |
| hostId | |
| id |1e1a85d4-5f58-4a6d-9f9f-e39f6b834cf5 |
| image | Attempt toboot from volume - no image supplied |
| key_name | - |
| metadata | {} |
| name | vm2 |
|os-extended-volumes:volumes_attached | [] |
| progress | 0 |
|security_groups |default |
| status | BUILD |
| tenant_id |4bbba9b45a054efaa91c18edf8136fe0 |
| updated |2015-12-11T09:27:42Z |
| user_id | b316af41f3544050a0955a8b6c138562 |
+--------------------------------------+-------------------------------------------------+
Vm刪不掉的解決方案:
先進入mysql數據庫:
進入cinder數據庫:use cinder;
選擇volume表中的對應volune:
selectstatus,attach_status,id,project_id,deleted from volumes where id ='c38daa36-01e2-4bd4-b2d9-2965008f8974';
(此volume已刪除)
+---------+---------------+--------------------------------------+----------------------------------+---------+
| status | attach_status | id | project_id | deleted |
+---------+---------------+--------------------------------------+----------------------------------+---------+
| deleted |detached |c38daa36-01e2-4bd4-b2d9-2965008f8974 | 4bbba9b45a054efaa91c18edf8136fe0 | 1|
+---------+---------------+--------------------------------------+----------------------------------+---------+
解除volume和vm之間的關係:
修改表中的status爲available,attach_status爲detached
然後cinder delete ……
然後nova delete……