赞
踩
如何再添加一个管理员用户
|
# keystone-manage bootstrap --bootstrap-username myadmin --bootstrap-password mypasswd
|
如何登陆虚拟机的控制台界面: |
1.查看某个实例的url(例如访问前面创建的名为instance-a 的实例)
$ openstack console url show 5b08017b-00d4-4476-9380-4f5b6165c6d7
+-------+---------------------------------------------------------------------------------+
| Field | Value |
+-------+---------------------------------------------------------------------------------+
| type | novnc |
| url | http://controller:6080/vnc_auto.html?token=6643713d-f4c8-411c-ac9e-2c5b5a419935 |
+-------+---------------------------------------------------------------------------------+
(5b08017b-00d4-4476-9380-4f5b6165c6d7 通过openstack server list 查看,是要启动实例的ID)
2.访问一个实例
(在浏览器中输入http://controller:6080/vnc_auto.html?token=6643713d-f4c8-411c-ac9e-2c5b5a419935 就可以访问虚拟机了,前提是controller主机名能被识别,或直接换成ip)
|
如何设置虚拟机磁盘类型,如ide、virtio
|
创建虚拟机时直接传入"disk_bus": "ide" :
Action: 'create', calling method: <bound method ServersController.create of <nova.api.openstack.compute.servers.ServersController object at 0x7f1e5c008510>>, body: {"server": {"name": "test-1", "imageRef": "", "availability_zone": "nova", "block_device_mapping_v2": [{"disk_bus": "ide", "source_type": "image", "boot_index": "0", "uuid": "907bcb20-7623-446f-b19c-ab135a0ac2d6", "destination_type": "volume", "volume_size": 400, "delete_on_termination": true, "disk_name": "test-1-disk1", "device_name": "vda"}], "flavorRef": "8a6558a8-2d36-48d9-bd0d-2fbe1ac25a2e", "max_count": 1, "interface_disconnect_names": [], "min_count": 1, "networks": "none"}}
|
如何设置虚拟机的cpu拓扑
|
$ openstack flavor set FLAVOR-NAME \
--property hw:cpu_sockets=FLAVOR-SOCKETS \
--property hw:cpu_cores=FLAVOR-CORES \
--property hw:cpu_threads=FLAVOR-THREADS \
--property hw:cpu_max_sockets=FLAVOR-SOCKETS \
--property hw:cpu_max_cores=FLAVOR-CORES \
--property hw:cpu_max_threads=FLAVOR-THREADS
或者
$ nova flavor-key m2.nano set hw:cpu_sockets=3 hw:cpu_cores=4 hw:cpu_threads=5
|
如何设置虚拟机的操作系统类型
|
# openstack image set --property os_type=windows 950420e3-98ae-454b-b073-9f75b275fcc8
或者
# nova image-meta 950420e3-98ae-454b-b073-9f75b275fcc8 set os_type=linux
这样在镜像的属性里面就能看到os_type
|
如何设置虚拟机磁盘的cache类型
|
修改配置文件中的disk_cachemodes:
/etc/nova/nova-compute.conf
[libvirt]
disk_cachemodes = "network=writeback"
其中network和writeback分别对应虚拟机xml中的type和cache:
<devices>
<disk type='
network' device='disk'>
<driver name='qemu' type='raw' cache='
writeback'/>
|
这个配置是不会写入数据库的,每次虚拟机启动时根据这个配置文件动态生成。
|
如何设置虚拟机cpu类型
|
修改配置文件中的cpu_mode:
/etc/nova/nova-compute.conf
[libvirt]
cpu_mode=none
|
这个配置是不会写入数据库的,每次虚拟机启动时根据这个配置文件动态生成。
如果cpu_mode=none:
<cpu>
<topology sockets='1' cores='1' threads='1'/>
</cpu>
如果cpu_mode=host-model:
<cpu mode='host-model'>
<model fallback='allow'/>
<topology sockets='1' cores='1' threads='1'/>
</cpu>
|
如何设置虚拟机cpu的亲和性
|
修改/etc/nova/nova.conf
[DEFAULT]
vcpu_pin_set = 0-1
|
使用上面的配置后虚拟机的xml文件如下:
<vcpu placement='static' cpuset='0-1'>2</vcpu>
其作用主要是让openstack的虚拟机使用指定的几个物理cpu核,给物理机操作系统适当留下若干物理核,保证物理机的性能。
|
说明:另外openstack还可以通过flavor隐式的做虚拟机cpu的绑定,通过做host的aggregate:
The flavor extra specs will be enhanced to support twonew parameters
hw:cpu_policy=shared|dedicated
hw:cpu_threads_policy=avoid|separate|isolate|prefer
|
如何设置虚拟机的关联组与反关联组
|
nova可以通过命令创建一个server group,在server group中的vm可以指定一些policy。
这些policy包括affinity和anti-affinity。affinity表示尽量把vm都安排到一个host上面,anti-ffinity表示尽量把vm安排到不同的host上面。
创建server-group的命令:
nova server-group-create group_name anti-afffinity
创建vm的时候通过hint指定group名字:
nova boot --image cirros --flavor m1.small --hint group=group_name
这样就能把创建的vm放到某个指定的group里面了
|
如何更新网络的ip地址池的范围
|
neutron subnet-update --allocation-pool start=192.168.105.35,end=192.168.105.39 --allocation-pool start=192.168.105.40,end=192.168.105.49 subnet_01
|
如何使用floating ip
|
neutron floatingip-create providernet01
neutron floatingip-associate fbc76a22-4a2e-43bb-982b-6e42575eebe9 12b50cb3-18c8-4c08-8caf-1203e3183406
(floating_id port_id)
|
如何在subnet中创建port
|
neutron port-create --fixed-ip subnet_id=$SUBNET_ID $NET_ID
|
如何控制磁盘qos(cinder)
|
一。首先创建一个带限速功能的类型
# cinder type-create my-type
# cinder qos-create my-qos consumer="front-end" read_iops_sec=2000 write_iops_sec=1000
# cinder qos-associate $QOS_ID $VOLUME_TYPE_ID
# cinder qos-get-association $QOS_ID
二。把创建的类型赋给磁盘
如果是已经存在的磁盘:
1.从虚拟机分离磁盘
2.#
cinder retype $VOLUME_ID
$VOLUME_TYPE_ID
3.给虚拟机挂载磁盘
如果是要新创建磁盘:
1.# cinder create --name $VOLUME_NAME --volume-type $VOLUME_TYPE_ID
2.给虚拟机挂载磁盘
|
说明:
<iotune>
<read_iops_sec>2000</read_iops_sec>
<write_iops_sec>1000</write_iops_sec>
</iotune>
|
如何控制磁盘qos(nova)
|
# openstack flavor create --vcpus 1 --ram 4096 --disk 5 qqq
# openstack flavor set qqq --property quota:disk_read_bytes_sec=20480 --property quota:disk_write_bytes_sec=10240
|
<disk type='network' device='disk'>
<driver name='qemu' type='raw' cache='writeback' discard='unmap'/>
<source protocol='rbd' name='images/1a956ba7-25fe-49f1-9513-7adb8928036c'>
<host name='192.168.107.50' port='6789'/>
<host name='192.168.107.51' port='6789'/>
<host name='192.168.107.52' port='6789'/>
<host name='192.168.107.53' port='6789'/>
</source>
<target dev='vda' bus='virtio'/>
<iotune>
<read_bytes_sec>20480</read_bytes_sec>
<write_bytes_sec>10240</write_bytes_sec>
</iotune>
<boot order='1'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x0a' function='0x0'/>
</disk>
|
# openstack flavor create --vcpus 1 --ram 4096 --disk 5 qqqq
# openstack flavor set qqqq --property quota:disk_read_iops_sec=20480 --property quota:disk_write_iops_sec=10240
|
<disk type='network' device='disk'>
<driver name='qemu' type='raw' cache='writeback' discard='unmap'/>
<source protocol='rbd' name='images/1a956ba7-25fe-49f1-9513-7adb8928036c'>
<host name='192.168.107.50' port='6789'/>
<host name='192.168.107.51' port='6789'/>
<host name='192.168.107.52' port='6789'/>
<host name='192.168.107.53' port='6789'/>
</source>
<target dev='vda' bus='virtio'/>
<iotune>
<read_iops_sec>20480</read_iops_sec>
<write_iops_sec>10240</write_iops_sec>
</iotune>
<boot order='1'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x0a' function='0x0'/>
</disk>
|
如何控制网络qos(neutorn)
|
|
如何控制网络qos(nova)
|
# openstack flavor create --vcpus 1 --ram 512 --disk 1 q
# openstack flavor set q --property quota:vif_inbound_average=2048 --property quota:vif_outbound_average=1024
|
<interface type='bridge'>
<mac address='fa:16:3e:8f:6a:c9'/>
<source bridge='brq5233ef6c-62'/>
<bandwidth>
<inbound average='2048'/>
<outbound average='1024'/>
</bandwidth>
<target dev='tap9573c869-24'/>
<model type='virtio'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
</interface>
|
如何在数据库中删除虚拟机
|
MariaDB [nova]> delete from instance_actions_events where action_id="129";
MariaDB [nova]> delete from instance_actions_events where action_id="138";
MariaDB [nova]> delete from instance_actions where instance_uuid="67b6044b-bbdc-4120-b2c7-c6faf540da29"; (id和action_id关联)
MariaDB [nova]> delete from block_device_mapping where instance_uuid="67b6044b-bbdc-4120-b2c7-c6faf540da29";
MariaDB [nova]> delete from instance_extra where instance_uuid="67b6044b-bbdc-4120-b2c7-c6faf540da29";
MariaDB [nova]> delete from instance_info_caches where instance_uuid="67b6044b-bbdc-4120-b2c7-c6faf540da29";
MariaDB [nova]> delete from instance_system_metadata where instance_uuid="67b6044b-bbdc-4120-b2c7-c6faf540da29";
MariaDB [nova]> delete from instances where display_name="test-1";
|
快速创建网络脚本
|
#!/bin/bash
function create_providernet()
{
openstack router create router01
neutron net-create --shared --router:external=true --provider:physical_network provider01 --provider:network_type flat providernet01
openstack subnet create --network providernet01 --dns-nameserver 219.146.1.66 --gateway 192.168.5.254 --subnet-range 192.168.5.0/24 --no-dhcp providernet01_subnet01
#neutron router-gateway-set router01 providernet01
neutron router-gateway-set --fixed-ip ip_address=192.168.5.89 router01 providernet01
}
function create_net()
{
neutron net-create --shared --provider:segmentation_id 188 --provider:physical_network provider02 --provider:network_type vlan net01
openstack subnet create --network net01 --dns-nameserver 219.146.1.66 --gateway 172.16.1.1 --subnet-range 172.16.1.0/24 net01_subnet01
neutron router-interface-add router01 net01_subnet01
}
function clear_all()
{
neutron router-gateway-clear router01
neutron router-interface-delete router01 net01_subnet01
neutron router-delete router01
neutron net-delete providernet01
neutron net-delete net01
}
. admin-openrc
create_providernet
create_net
#clear_all
|
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。