1.創建並掛載存儲卷
創建一個1GB的卷
source ~/demo-openrc openstack volume create --size 1 volume1
很短的時間后,卷狀態應該從creating 到available
[root@controller ~]# openstack volume list +--------------------------------------+---------+-----------+------+-------------+ | ID | Name | Status | Size | Attached to | +--------------------------------------+---------+-----------+------+-------------+ | 5e89f544-e204-436c-8d9c-25a77039796f | volume1 | available | 10 | | +--------------------------------------+---------+-----------+------+-------------+
將卷附加到provider-vm1實例,可以在dashboard界面操作
openstack server add volume provider-vm1 volume1
查看卷清單
[root@controller ~]# openstack volume list +--------------------------------------+---------+--------+------+------------------------------------------+ | ID | Name | Status | Size | Attached to | +--------------------------------------+---------+--------+------+------------------------------------------+ | 75011e60-33fc-4061-98dc-7028e477efc9 | volume1 | in-use | 1 | Attached to selfservice-vm1 on /dev/vdb | +--------------------------------------+---------+--------+------+------------------------------------------+
使用SSH訪問實例
使用fdisk命令驗證該卷是否作為/dev/vdb塊存儲設備
[root@controller ~]# ssh cirros@192.168.0.198 $ sudo fdisk -l
分區並格式化新添加的/dev/vdb
$ sudo fdisk /dev/vdb Command (m for help): n #創建一個新分區 Partition type p primary (0 primary, 0 extended, 4 free) e extended (container for logical partitions) Select (default p): p #創建一個主分區 Partition number (1-4, default 1): #分區默認編號為1 First sector (2048-2097151, default 2048): #磁盤分區中第一個扇區(從哪里開始) 默認的 Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-2097151, default 2097151): #磁盤分區中最后1個扇區的位置 默認全部 Command (m for help): w #保存
查看創建的主分區
$ ls /dev/vdb* /dev/vdb /dev/vdb1
格式化 創建文件系統
$ sudo mkfs.ext4 /dev/vdb1
臨時掛載
$ sudo mount /dev/vdb1 /mnt/ $ df -h|tail -1 /dev/vdb1 990.9M 2.5M 921.2M 0% /mnt
永久掛載
$ sudo su - # echo '/dev/vdb1 /mnt/ xfs defaults 0 0' >>/etc/fstab
2.使用卷創建實例報錯的故障
從實例中分離cinder虛擬磁盤
umount卸載 openstack server remove volume provider-vm1 volume1 openstack volume delete volume1
刪除無法刪除的卷,用命令改變卷的狀態,然后刪除
cinder reset-state <volume> --state available cinder delete <volume>
OpenStack創建實例提示失敗的具體原因如下:
did not finish being created even after we waited 241 seconds or 61 attempts. A its status is downloading. 即使等待了241秒或61次嘗試,仍無法完成創建。 其狀態為下載中。
解決辦法
在計算節點上的nova.conf中有一個控制卷設備重試的參數:block_device_allocate_retries,可以通過修改此參數延長等待時間。
該參數默認值為60,這個對應了之前實例創建失敗消息里的61 attempts。我們可以將此參數設置的大一點,例如:180。這樣Nova組件就不會等待卷創建超時,也即解決了此問題。
然后重啟計算節點服務
openstack-config --set /etc/nova/nova.conf DEFAULT block_device_allocate_retries 180 systemctl restart libvirtd.service openstack-nova-compute.service