Cloudstack 單節點快速安裝

blob.png blob.png

 上面左邊是我的個人微 信,如需進一步溝通,請加微 信。  右邊是我的公衆號“Openstack私有云”,如有興趣,請關注。

    新的單位使用了cloudstack作爲雲平臺的基礎架構,老規矩,通過動手搭建一個實驗環境熟悉一下cloudstack的基本的組件。

    找到官網的官方安裝手冊,網址如下:

    http://docs.cloudstack.apache.org/en/4.11.2.0/quickinstallationguide/qig.html

    可以看到cloudstack的版本更新應該是挺慢的,截止到現在(2019年3月)的最新版本是4.11.2.0 ,使用的基礎OS是Centos6.8 ,首先下載Centos6.8 ,網址如下:

    http://mirrors.kernel.org/centos/6/isos/x86_64/

    根據要求,下載的是minimal 版本。

    首先不要着急動手,先通讀一遍上面的安裝手冊,基本的思路還是首先安裝基本的OS,然後進行selinux、ntp、nfs等基礎配置,配置Cloudstack的安裝源開始安裝Cloudstack組件,安裝mariadb數據庫,下載管理鏡像,然後開始配置Cloudstack 。總體感覺安裝部署方面應該比Openstack要簡單一些,因爲Cloudstack的相關組件是直接通過下載標準模板鏡像,通過虛擬機完成的,我個人感覺這種方式是很好的,類似於Openstack的Kolla ,容器化安裝,簡化了安裝,並提高了整個系統的靈活性。

    開始的時候使用自己的工作筆記本,使用VMWare workstation14 ,虛擬機配置4C,4G內存,1個網卡,1塊200G的硬盤,但是裝完之後發現啓動卡住不動了,算了,還是使用PVE來弄,同樣的虛擬機配置,配置4C,4G內存,1個網卡,1塊200G的硬盤 。

    安裝過程不贅述,詳見上面那個官網的安裝手冊,記錄一下碰到的坑和需要注意的地方。

    1、官網裏面最新版本是4.11 ,對應的操作系統版本是centos6.8 ,文章裏面對應的centos下載鏈接是centos6.10 ;

    2、安裝到 cloudstack-management  這條命令的時候,報錯找不到一個安裝包的位置:

# yum -y install cloudstack-management
http://download.cloudstack.org/centos/6/4.11/repodata/c696ac24f6d36ebf0ea76e44d12f519601521b6cc659d225f472a9e4fbd3c820-filelists.sqlite.bz2: [Errno 14] PYCURL ERROR 22 - "The requested URL returned error: 404 Not Found"
Trying other mirror.

    通過更改repo軟件源版本爲4.12 ,  /etc/yum.repos.d/cloudstack.repo  中的baseurl改爲:

baseurl=http://download.cloudstack.org/centos/6/4.12/

    3、安裝cloudstack-management 的時候,速度很慢,使用了自己搭建的科學上網代理。參考“linux客戶端科學上網(k8s安裝聯網問題)” ;

    4、主機名需要設置長主機名,注意修改 /etc/sysconfig/network 以及 /etc/hosts 文件中的主機名爲長主機名,否則 在執行 cloudstack-setup-management 命令的時候會報錯。

    5、由於要使用到kvm模塊,pve虛擬機需要設置支持cpu虛擬化,設置方法如下:(如果不是使用proxmoxVE,這一塊可以略過)

物理機pve上執行:
root@pve:~# qm showcmd 110
/usr/bin/kvm -id 110 -name pve-1 -chardev 'socket,id=qmp,path=/var/run/qemu-server/111.qmp,server,nowait' -mon 'chardev=qmp,mode=control' -pidfile /var/run/qemu-server/111.pid -daemonize -smbios 'type=1,uuid=d9eb0729-f0ee-4176-836d-308b70d13754' -smp '3,sockets=1,cores=3,maxcpus=3' -nodefaults -boot 'menu=on,strict=on,reboot-timeout=1000,splash=/usr/share/qemu-server/bootsplash.jpg' -vga std -vnc unix:/var/run/qemu-server/111.vnc,x509,password -cpu kvm64,+lahf_lm,+sep,+kvm_pv_unhalt,+kvm_pv_eoi,enforce -m 12000 -device 'pci-bridge,id=pci.1,chassis_nr=1,bus=pci.0,addr=0x1e' -device 'pci-bridge,id=pci.2,chassis_nr=2,bus=pci.0,addr=0x1f' -device 'piix3-usb-uhci,id=uhci,bus=pci.0,addr=0x1.0x2' -device 'usb-tablet,id=tablet,bus=uhci.0,port=1' -device 'virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3' -iscsi 'initiator-name=iqn.1993-08.org.debian:01:b48afece2d1' -drive 'file=/var/lib/vz/template/iso/proxmox-ve_5.2-1.iso,if=none,id=drive-ide2,media=cdrom,aio=threads' -device 'ide-cd,bus=ide.1,unit=0,drive=drive-ide2,id=ide2,bootindex=200' -device 'virtio-scsi-pci,id=scsihw0,bus=pci.0,addr=0x5' -drive 'file=/dev/pvevg2/vm-111-disk-7,if=none,id=drive-scsi0,format=raw,cache=none,aio=native,detect-zeroes=on' -device 'scsi-hd,bus=scsihw0.0,channel=0,scsi-id=0,lun=0,drive=drive-scsi0,id=scsi0,bootindex=100' -drive 'file=/dev/pvevg2/vm-111-disk-2,if=none,id=drive-scsi1,format=raw,cache=none,aio=native,detect-zeroes=on' -device 'scsi-hd,bus=scsihw0.0,channel=0,scsi-id=0,lun=1,drive=drive-scsi1,id=scsi1' -drive 'file=/dev/pvevg2/vm-111-disk-3,if=none,id=drive-scsi2,format=raw,cache=none,aio=native,detect-zeroes=on' -device 'scsi-hd,bus=scsihw0.0,channel=0,scsi-id=0,lun=2,drive=drive-scsi2,id=scsi2' -drive 'file=/dev/pvevg2/vm-111-disk-6,if=none,id=drive-scsi3,format=raw,cache=none,aio=native,detect-zeroes=on' -device 'scsi-hd,bus=scsihw0.0,channel=0,scsi-id=0,lun=3,drive=drive-scsi3,id=scsi3' -netdev 'type=tap,id=net0,ifname=tap111i0,script=/var/lib/qemu-server/pve-bridge,downscript=/var/lib/qemu-server/pve-bridgedown,vhost=on' -device 'virtio-net-pci,mac=76:60:17:9D:6A:FF,netdev=net0,bus=pci.0,addr=0x12,id=net0,bootindex=300' -netdev 'type=tap,id=net1,ifname=tap111i1,script=/var/lib/qemu-server/pve-bridge,downscript=/var/lib/qemu-server/pve-bridgedown,vhost=on' -device 'virtio-net-pci,mac=6A:93:EB:0E:A8:84,netdev=net1,bus=pci.0,addr=0x13,id=net1,bootindex=301'
找到“-cpu kvm64,+lahf_lm,+sep,+kvm_pv_unhalt,+kvm_pv_eoi,enforce”這部分,在enforce前面加“+vmx,”參數如下:
-cpu kvm64,+lahf_lm,+sep,+kvm_pv_unhalt,+kvm_pv_eoi,+vmx,enforce
將修改後的命令保存到一個腳本110.sh ,並且 chmod +x 110.sh 
執行:qm stop 110 停止虛擬機後,再執行上面修改後的命令  ./110.sh  。
虛擬機啓動後,ssh進入,執行 grep vmx /proc/cpuinfo 查看是不是有輸出,如下:
root@pve-1:~# grep vmx /proc/cpuinfo flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx lm constant_tsc nopl xtopology cpuid pni vmx cx16 x2apic hypervisor lahf_lm cpuid_fault pti tpr_shadow vnmi flexpriority ept vpid
flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx lm constant_tsc nopl xtopology cpuid pni vmx cx16 x2apic hypervisor lahf_lm cpuid_fault pti tpr_shadow vnmi flexpriority ept vpid
flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx lm constant_tsc nopl xtopology cpuid pni vmx cx16 x2apic hypervisor lahf_lm cpuid_fault pti tpr_shadow vnmi flexpriority ept vpid
表示已經支持虛擬嵌套。



安裝完cloudstack-management 和 cloudstack-agent ,並且設置完kvm 之後,開始配置cloudstack:

image.png

使用賬號admin ,密碼 password 登錄,登錄進去之後會提示修改這個密碼,比如改爲  cloudstack   ,之後根據提示分別設置zone、pod、cluster、host的信息,之後,系統會自動開始進行初始化操作,如下:

image.png


image.png可以看到,初始化過程中要生成的2個虛擬機都沒有成功,估計是和下載的模板版本不匹配導致,官網安裝步驟裏面下載的模板還是4.6版本,安裝的是4.12版本,重新下載最新的4.11.1.2版本的模板:

/usr/share/cloudstack-common/scripts/storage/secondary/cloud-install-sys-tmplt -m /export/secondary -u http://download.cloudstack.org/systemvm/4.11/systemvmtemplate-4.11.2-kvm.qcow2.bz2 -h kvm -F


注:上面下載的模板存放在/export/secondary 目錄下。

通過web界面將二級存儲刪除重建,關閉防火牆,同時重新啓動 cloudstack-management 服務 。之後,等待系統重建console proxy VM 和Secondary Storage VM 兩個系統虛擬機 。之後正常,如下:

image.png


創建虛擬機:

image.png


控制檯:

image.png


4c 4G內存資源用完了:

image.png


關閉,重新分配了8核CPU 8G內存 ,再重啓,資源沒那麼緊張了。


總結:

    整個安裝過程比預想的還簡單,概念清晰,感覺比openstack更友好。虛擬機的使用和管理也要比openstack要方便,存儲管理很靈活,網絡管理還沒來得及測試。總之,整體比openstack要好用,但是好像還沒看到相關PAAS層的東西,比如類似openstack的大數據組件sahara、對象存儲組件swift、文件系統manila等,也正常,cloudstack官網本身也說是提供IAAS層的。

    但如果純粹作爲iaas層虛擬來使用的話,感覺還是不如proxmoxVE好用。對於各個虛擬化的納管來說,可能相對於proxmoxVE更強一些,比如對於同時有VMWare虛擬化、kvm虛擬化以及xen虛擬機的環境來說,cloudstack可以同時進行納管,這一塊還沒有經過實際測試,使用起來不知道是不是方便 。

    多一個選擇總是好的,都是好東西,看不同的場景,可以有不同的選擇。





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章