公司環境中批量刪除虛擬機的過程中出現某些虛擬機無法正常刪除,任務狀態顯示刪除中但是虛擬無法刪除。
通過查詢相關文章(下文轉載)發現應該是instances row中鍵值未更新錯誤導致,但是按照操作雲主機數量中內容移除信息但是概況中還是出現該資源被占用的情況。(批量方式待解決)
1.命令行處理方式:(完美解決)
通過rest-state和force-delete后某些報錯VM可以清除(測試可行,但是有時候nova delete命令無效,控制台測試可以正常刪除)
# nova reset-state --active UUID
# nova force-delete --active UUID
[root@controller1 ~]# nova list
[root@controller1 ~]# nova reset-state 1274d42e-4934-4c8b-96ea-c62adeb0210d
Reset state for server 1274d42e-4934-4c8b-96ea-c62adeb0210d succeeded; new state is error
[root@controller1 ~]# nova list
[root@controller1 ~]# nova reset-state 1274d42e-4934-4c8b-96ea-c62adeb0210d --active
Reset state for server 1274d42e-4934-4c8b-96ea-c62adeb0210d succeeded; new state is active
[root@controller1 ~]# nova list
[root@controller1 ~]# nova delete 1274d42e-4934-4c8b-96ea-c62adeb0210d
Request to delete server 1274d42e-4934-4c8b-96ea-c62adeb0210d has been accepted.
[root@controller1 ~]# nova list
具體的BUG信息請參考:https://review.openstack.org/#/c/294491/ (通常需要刪除后重啟nova-compute服務才能生效該方法不需要重啟服務)
https://community.rackspace.com/products/f/45/t/1478
2.數據庫處理方式:(未完全解決,概況中存在資源被占用情況)
MariaDB [nova]> select * from instances\G
*************************** 73. row ***************************
created_at: 2017-08-24 09:49:35
updated_at: 2017-08-25 03:40:45
deleted_at: NULL
id: 174
internal_id: NULL
user_id: 1487af17b9b34850972f451f34394c34
project_id: af087ac33ae2455091db74836d07e1b0
image_ref: e5cf5847-50d0-4584-b77e-0db5479ee7c0
kernel_id:
ramdisk_id:
launch_index: 0
key_name: NULL
key_data: NULL
power_state: 1
vm_state: active
memory_mb: 16384
vcpus: 4
hostname: concar-es01
host: compute1
user_data: NULL
reservation_id: r-b4ya1x14
scheduled_at: NULL
launched_at: 2017-08-24 09:50:46
terminated_at: NULL
display_name: concar-es1
display_description: concar-es01
availability_zone: nova
locked: 0
os_type: NULL
launched_on: compute1
instance_type_id: 57
vm_mode: NULL
uuid: d1027782-6dbe-4bd2-ae02-f69c5632e905
architecture: NULL
root_device_name: /dev/vda
access_ip_v4: NULL
access_ip_v6: NULL
config_drive:
task_state: deleting
default_ephemeral_device: NULL
default_swap_device: NULL
progress: 0
auto_disk_config: 1
shutdown_terminate: 0
disable_terminate: 0
root_gb: 30
ephemeral_gb: 0
cell_name: NULL
node: compute1
deleted: 0
locked_by: NULL
cleaned: 0
ephemeral_key_uuid: NULL
*************************** 74. row ***************************
使用命令進行修改
MariaDB [nova]> update instances set deleted=1 where uuid='d1027782-6dbe-4bd2-ae02-f69c5632e905';
修改后:
*************************** 73. row ***************************
created_at: 2017-08-24 09:49:35
updated_at: 2017-08-25 03:40:45
deleted_at: NULL
id: 174
internal_id: NULL
user_id: 1487af17b9b34850972f451f34394c34
project_id: af087ac33ae2455091db74836d07e1b0
image_ref: e5cf5847-50d0-4584-b77e-0db5479ee7c0
kernel_id:
ramdisk_id:
launch_index: 0
key_name: NULL
key_data: NULL
power_state: 1
vm_state: active
memory_mb: 16384
vcpus: 4
hostname: concar-es01
host: compute1
user_data: NULL
reservation_id: r-b4ya1x14
scheduled_at: NULL
launched_at: 2017-08-24 09:50:46
terminated_at: NULL
display_name: concar-es1
display_description: concar-es01
availability_zone: nova
locked: 0
os_type: NULL
launched_on: compute1
instance_type_id: 57
vm_mode: NULL
uuid: d1027782-6dbe-4bd2-ae02-f69c5632e905
architecture: NULL
root_device_name: /dev/vda
access_ip_v4: NULL
access_ip_v6: NULL
config_drive:
task_state: deleting
default_ephemeral_device: NULL
default_swap_device: NULL
progress: 0
auto_disk_config: 1
shutdown_terminate: 0
disable_terminate: 0
root_gb: 30
ephemeral_gb: 0
cell_name: NULL
node: compute1
deleted: 1
locked_by: NULL
cleaned: 0
ephemeral_key_uuid: NULL
修改前和修改后對比:
修改后和其他正常刪除的虛擬信息對比:
刪除后更新為:
轉載鏈接:http://www.cnblogs.com/horizonli/p/5172213.html
部署OpenStack問題匯總(五)--openstack中刪除虛擬主機,狀態一直未deleting
【原創文章,轉載請注明出處】
一、我重啟了該機器,之后想刪除沒有創建成功的虛擬機(沒有打開cpu的vt),結果發現狀態一直為deleting狀態。在這個狀態下創建虛擬機也失敗。
二、分析:在/var/log/nova/nova-compute.log的log找到如下的信息:
---------------------------------------------------------------------------------------------------------
2012-08-13 14:30:45 CRITICAL nova [-] Instance instance-00000002 could not be found.
---------------------------------------------------------------------------------------------------------
接着又發現nova-compute(service nova-compute status)的狀態為stop,重啟不能成功。
三、處理:
最后我修改了nova數據庫中的instance-00000002的deleted,把它變成1。
mysql> select * from instances\G
mysql> update instances set deleted=1 where id=2; (注意:根據不同的版本deleted的值不定,有些版本會改成對應的ID號。)
之后,dashboard的頁面中發現已經刪除了。
重啟nova-compute,再次創建虛擬機,狀態都為active。
問題的思考方向:虛擬機的操作(創建、刪除等)一定跟nova-compute有關。






