如何再添加一个管理员用户 # 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.给虚拟机挂载磁盘 说明: consumer的合法值为front-end、back-end、both。front-end表示使用前端控制(hypervisor控制,会在libvirt xml文件中定义), 而back-end表示使用后端控制(cinder drivers,需要driver支持),both表示前后端同时进行QoS控制。 libvirt中disk中配置: <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 (责任编辑:IT) |