Ubuntu12.04 OpenStack Folsom 安裝(VLAN模式)之二

2、安裝計算節點
計算節點須要三塊網卡,eth0、eth1 就接公網和內網網段,eth2相連的交換機要打開trunk
安裝NTP服務
 
  
  
  
  
  1. apt-get -y install ntp 
 

編輯 /etc/ntp.conf, 指向控制節點
html

  
  
  
  
  1. sed -i -e " s/server ntp.ubuntu.com/server 192.168.4.164/g" /etc/ntp.conf 
 
重啓服務
 
  
  
  
  
  1. service ntp restart 
 

配置 cat /etc/resolv.conf 文件python

  
  
  
  
  1. nameserver  192.168.4.164                //控制機內網ip
 
安裝Hypervisor
 
  
  
  
  
  1. apt-get install -y kvm libvirt-bin pm-utils 
 

編輯 /etc/libvirt/qemu.conf ,添加下面內容mysql

  
  
  
  
  1. cgroup_device_acl = [ 
  2.  
  3.     "/dev/null", "/dev/full", "/dev/zero", 
  4.     "/dev/random", "/dev/urandom", 
  5.     "/dev/ptmx", "/dev/kvm", "/dev/kqemu", 
  6.     "/dev/rtc", "/dev/hpet","/dev/net/tun", 
 
容許遷移

編輯 /etc/libvirt/libvirtd.conf, 去掉這三行的註釋linux

  
  
  
  
  1. listen_tls = 0 
  2. listen_tcp = 1 
  3. auth_tcp = "none" 
 
或者運行下面命令

  
  
  
  
  1. sed -i '/#listen_tls/s/#listen_tls/listen_tls/; /#listen_tcp/s/#listen_tcp/listen_tcp/; /#auth_tcp/s/#auth_tcp/auth_tcp/; /auth_tcp/s/sasl/none/' /etc/libvirt/libvirtd.conf 
 

編輯 /etc/init/libvirt-bin.confsql

  
  
  
  
  1. env libvirtd_opts="-d -l" 
或者使用命令
  
  
  
  
  1. sed -i '/env libvirtd_opts/s/-d/-d –l/' /etc/init/libvirt-bin.conf 
 
編輯 /etc/default/libvirt-bin
 
  
  
  
  
  1. libvirtd_opts="-d -l" 
或者使用命令
  
  
  
  
  1. sed -i '/libvirtd_opts/s/-d/-d -l/' /etc/default/libvirt-bin 
 
重啓服務
 
  
  
  
  
  1. service libvirt-bin restart 
 
安裝nova服務
 
配置eth2網卡開機自動up
編輯/etc/network/interfaces    
  
  
  
  
  1. auto eth2 
  2. iface eth2 inet manual 
  3. pre-up ifconfig eth2 up 
 /etc/init.d/networking restart
 
 
安裝 nova
  
  
  
  
  1. sudo apt-get  install nova-compute nova-network nova-api python-keystone novnc bridge-utils  
 

注意:/etc/nova 這個目錄的權限,安裝完成後有時會出現這個目錄的權限問題,這個目錄屬於nova 用戶ubuntu

 
編輯/etc/nova/nova.conf
  
  
  
  
  1. [DEFAULT] 
  2. logdir=/var/log/nova 
  3. state_path=/var/lib/nova 
  4. lock_path=/run/lock/nova 
  5. verbose=False 
  6. api_paste_config=/etc/nova/api-paste.ini 
  7. scheduler_driver=nova.scheduler.simple.SimpleScheduler 
  8. s3_host=192.168.4.164 
  9. ec2_host=192.168.4.164 
  10. ec2_dmz_host=192.168.4.164 
  11. rabbit_host=192.168.4.164 
  12. rabbitrabbit_password=rabbit-pass 
  13. cc_host=192.168.4.164 
  14. nova_url=http://192.168.4.164:8774/v1.1/ 
  15. sql_connection=mysql://nova:nova-pass@192.168.4.164/nova 
  16. ec2_url=http://192.168.4.164:8773/services/Cloud 
  17.  
  18. root_helper=sudo nova-rootwrap /etc/nova/rootwrap.conf 
  19.   
  20. # Auth 
  21. use_deprecated_auth=false 
  22. auth_strategy=keystone 
  23. keystone_ec2_url=http://192.168.4.164:5000/v2.0/ec2tokens 
  24. # Imaging service 
  25. glance_api_servers=192.168.4.165:9292 
  26. p_w_picpath_service=nova.p_w_picpath.glance.GlanceImageService 
  27.   
  28. # Vnc configuration 
  29. novnc_enabled=true 
  30. novncproxy_base_url=http://0.0.0.0:6080/vnc_auto.html 
  31. novncproxy_port=6080 
  32. vncserver_proxyclient_address=0.0.0.0 
  33. vncserver_listen=0.0.0.0 
  34.   
  35. # Network settings 
  36. #network_api_class=nova.network.quantumv2.api.API 
  37. #quantum_url=http://192.168.4.164:9696 
  38. #quantum_auth_strategy=keystone 
  39. #quantum_admin_tenant_name=service 
  40. #quantumquantum_admin_username=quantum 
  41. #quantum_admin_password
  42. #quantum_admin_auth_url=http://192.168.4.164:35357/v2.0 
  43. #libvirt_vif_driver=nova.virt.libvirt.vif.LibvirtHybridOVSBridgeDriver 
  44. #linuxnet_interface_driver=nova.network.linux_net.LinuxOVSInterfaceDriver 
  45. #firewall_driver=nova.virt.libvirt.firewall.IptablesFirewallDriver 
  46.   
  47. ###### NETWORK 
  48. #network_manager=nova.network.manager.FlatDHCPManager 
  49. network_manager=nova.network.manager.VlanManager 
  50. force_dhcp_release=True 
  51. dhcpbridge_flagfile=/etc/nova/nova.conf 
  52. dhcpbridge=/usr/bin/nova-dhcpbridge 
  53. firewall_driver=nova.virt.libvirt.firewall.IptablesFirewallDriver 
  54. public_inter> 
  55. flat_inter> 
  56. vlan_inter> 
  57. flat_network_bridge=br100 
  58. fixed_range=10.100.0.0/24 
  59. multi_host=true 
  60.   
  61. # Compute # 
  62. #compute_driver=libvirt.LibvirtDriver 
  63.   
  64. ###### COMPUTE 
  65. libvirt_type=kvm 
  66. #libvirt_type=qemu 
  67. connection_type=libvirt 
  68. instanceinstance_name_template=instance-%08x 
  69. api_paste_config=/etc/nova/api-paste.ini 
  70. allow_resize_to_same_host=True 
  71. libvirt_use_virtio_for_bridges=true 
  72. #start_guests_on_host_boot=true 
  73. #resume_guests_state_on_host_boot=true 
  74.   
  75. # Cinder # 
  76. volume_api_class=nova.volume.cinder.API 
  77. osapi_volume_listen_port=5900 
 
全部計算節點配置同樣,配置中的ip須要注意
 
重啓服務
  
  
  
  
  1. restart nova-compute 
  2. restart nova-network 
  3. restart nova-api    
   
 
在控制節點上運行
nova-manage service list

狀態是 :-) 的表示正常。
 
建立虛擬機網絡
 
由於咱們使用的VlanManager ,建立網絡的過程當中要制定vlan id,使用vlan,在nova.conf 有兩個配置
 
  
  
  
  
  1. vlan_interface=eth0 
  2. network_manager=nova.network.manager.VlanManager 
 
查看tenant

  
  
  
  
  1. keystone tenant-list    

這裏會列出最一開始建立的tenant : openstackDemo , service下面指定vlan給哪一個tenant是 openstackDemo 可使用, service最好別用,service表示服務容器。api

 
建立網絡
  
  
  
  
  1. nova-manage network create private --multi_host=T --fixed_range_v4=192.168.195.0/28 --vlan=2 --project_id=<tenant_id> --num_networks=1 --network_size=<ip個數> 
 
注意: 上面建立網絡的時候,能夠指定參數 --project_id=<project id> ,就會把相應的網絡分配給特定的tenant , <tenant_id>爲 tenant 的ID 。這個參數能夠不指定,這樣建立的vlan網段,就不會被馬上分配出去,可是,當有tenant 須要vlan網段時,這些沒有被分配出去的vlan網段會被自動分配給沒有網段的tenant的,這樣隨機性會比較大一些。
 
 
查看建立的網絡
 
  
  
  
  
  1. nova-manage  network  list 
刪除網絡
  
  
  
  
  1. nova-manage project scrub --project=<tenant_id> 
  2. nova-manage network delete --uuid=<uuid_id> 
 
 
使用新建立的tenant 和user 使用source 生效變量 新建虛擬機就屬於那個tenant
  
  
  
  
  1. export OS_USERNAME=seconduser 
  2. export OS_TENANT_NAME=secondtenant 
  3. export OS_PASSWORD=password 
  4. export OS_AUTH_URL=http://192.168.4.164:5000/v2.0/ 
  5. export OS_REGION_NAME=RegionOne 
 
之後要使用哪一個tenant 就加載那個tenant的環境變量
 
建立虛擬機
 
建立虛擬機以前,要注意把nova.conf 裏配置的vlan端口起來,這裏是eth0
ifconfig eth0 up
不然的話,下面建立虛擬機時會失敗,由於會建立一個vlan端口, 把vlan端口綁定在eth0上, 若是eth0沒有起來,那麼相應的vlan端口也是起不來的,就會出錯。
 
注意:由於nova.conf配置中把虛擬機內網IP綁定到eth0上,請確保鏈接網連,狀態爲UP,在控制機上能解析計算機節點的主機名,計算節點更改BIOS 支持HVM
nova boot *****
查看幫助 nova help boot
例子:
 
  
  
  
  
  1. nova boot –p_w_picpath  0912cd43-a5dd-4719-8b0f-3c1ebff77fa5 --flavor 1 "test_name" 
--p_w_picpath 參數是使用哪一個鏡像來建立虛擬機,使用 nova p_w_picpath-list查看
--flavor 參數是使用多大內存、cpu等參數的模塊,使用nova flavor-list查看
 
或者,加一個ssh登陸密鑰
key 建立
  
  
  
  
  1. nova keypair-add key_name > mykey.pem 
 
查看 key
  
  
  
  
  1. nova keypair-list 
 
刪除 key
  
  
  
  
  1. nova keypair-delete <name> 

使用key登入的方式 建立虛擬機

  
  
  
  
  1. nova boot --p_w_picpath 0912cd43-a5dd-4719-8b0f-3c1ebff77fa5 --flavor 2 "test_name」 --key_name  key_name 
查看虛擬機列表
  
  
  
  
  1. nova list  
 
查看vm列表
 
  
  
  
  
  1. nova-manage vm list 
 
刪除虛擬機
 
  
  
  
  
  1. nova delete <id> 
重啓虛擬機
  
  
  
  
  1. nova reboot   <id> 
 
會發現新建立的虛擬機分配的ip地址在第一個vlan裏面
 
再次建立一個新的tenant和user ,再用這個新的tenant 和user 建立虛擬機
則第二個vlan 被分配到這個tenant裏面了
      
 
要刪除一個網橋時
  
  
  
  
  1. vconfig rem vlan2 
  2. ifconfig virbr0 down 
  3. brctl delbr virbr0 
 
查看開放端口:
  
  
  
  
  1. nova secgroup-list-rules default 
打開全部端口:

  
  
  
  
  1. nova secgroup-add-rule default icmp -1 -1 0.0.0.0/0 
  2. nova secgroup-add-rule default tcp 1 65535 0.0.0.0/0 
  3. nova secgroup-add-rule default udp 1 65535    0.0.0.0/0 
 
查看資源限制
  
  
  
  
  1. nova-manage project quota "$tid" 
      
更改tenant 資源限制
  
  
  
  
  1. tid=1dc31a6445a64373939825ae546bd896 (tenant_id) 
  2. nova-manage project quota "$tid"    volumes 1000  
  3. nova-manage project quota "$tid"    gigabytes 10000      
  4. nova-manage project quota "$tid"   ram   5120000   
  5. nova-manage project quota "$tid"   instances   5120000  
  6. nova-manage project quota "$tid"  floating_ips   5120000   
  7. nova-manage project quota "$tid"  cores       5120000  
           
建立floating_ip
 
  
  
  
  
  1. nova-manage floating create --ip_range=192.168.3.160/27 
建立使用的floating_ip

  
  
  
  
  1. nova floating-ip-create 
綁定到虛擬機
  
  
  
  
  1. nova add-floating-ip  <server> <address>  
從虛擬機移除
 
  
  
  
  
  1. nova remove-floating-ip  <server> <address> 
刪除使用的floating_ip
  
  
  
  
  1. nova floating-ip-delete   <address> 
查看使用floating_ip
 
  
  
  
  
  1. nova floating-ip-list 
查看全部floating_ip
 
  
  
  
  
  1. nova-manage floating list 
 
若是虛擬啓動後同網段沒法ping 通 重啓計算節點的restart    libvrit-bin後會出現virbr0 設備 在重啓restart nova-network

 

 

 
3、安裝nfs實現動態遷移:
 
動態遷移須要配置各個資源機之間的libvirtd ,可以監聽到網絡上傳來的數據,而且這裏的實現方式使用NFS
環境:

compute-01.test.com 和compute-02.test.com是兩臺資源機服務器

使用共享存儲nfs , 將存儲服務器compute-02.test.com上的/storage掛載到compute-01.test.com  /user/lib/nova/instances 目錄下。
 

注意:若是兩臺資源機上的nova用戶的uid不一致,或者libvirt-* 用戶的uid不一致,遷移的過程當中就會出現權限問題。網絡

還要注意要能ping 各個計算節點的主機名,這個能夠經過修改 /etc/hosts 文件來實現     
ping HostA
ping HostB
ping HostC
       注意:控制節點不能在hosts中寫本機內網IP的對應關係,要不mysql 使用內網ip登入不上
在ubunt2上配置nfs ,
 
  
  
  
  
  1. apt-get install nfs-kernel-server 
 
使用fdisk 把磁盤分出一個分區掛載到 /storage
 
修改文件 /etc/exports ,添加
  
  
  
  
  1. /storage   *(rw,sync,no_root_squash) 
更改宿主
  
  
  
  
  1. chown nova:nova / storage   
  2. /etc/init.d/nfs-kernel-server restart 
  3. /etc/init.d/idmapd restart     (貌似跟uid 和用戶名的對應有關,必需的) 
 
在全部計算節點安裝客戶端
 
  
  
  
  
  1. apt-get install nfs-common 
 
修改 /etc/fstab
  
  
  
  
  1. 192.168.4.166:/storage   /var/lib/nova/instances nfs4 defaults 0 0 
掛載
mount -av
掛載成功

查看宿主是否爲nova
 
  
  
  
  
  1. ll -d /var/lib/nova/instances 
 
遷移過程當中,最開始測試的兩臺物理主機的cpu不同,而後遷移中從A主機遷到B主機成功,可是從B主機遷到A主機失敗,報錯是cpu信息不一致 。最好各個計算節點型號都是一致的
nova live-migration <server> <host>

 
4、resize 功能
默認狀況下運行resize時,openstack會經過 scheduler 服務選出一個節點來,把resize    以後的虛擬機運行在其上面,這樣有一個問題,全部的物理機之間須要配置ssh信任關係,由於作這樣的resiize的時候,須要ssh登陸到目的主機上,不然若是登陸不到目的主機上,resize就會報錯。
      
創建計算節點之間的信任關係
 
  
  
  
  
  1. ssh-keygen -t rsa                              //直接回車使用默認就能夠 
  2. ssh-copy-id -i  ~/.ssh/id_rsa.pub  '-p20009 root@192.168.4.166'
  3. scp –P20009 ~/.ssh/id_rsa root@192.168.4.166: /root/.ssh/ 
注意 須要把 root@192.168.4.166: /root/.ssh/authorized_keys 拷貝到 165上面
 
查看flavors列表
  
  
  
  
  1. nova flavor-list 
 
爲虛擬機增長內存,cpu等
  
  
  
  
  1. nova resize  <server>  <flavor> 
 
虛擬機狀態爲VERIFY_RESIZE時執行
  
  
  
  
  1. nova  resize-confirm  <server id>  

若是不運行 resize-confirm 24小時以後自動resize-confirm ,在這個狀態下能夠把 resize撤銷,也能夠把resize 確認dom

相關文章
相關標籤/搜索