OpenMANO初探

OpenMANO包含:openvimd、opennanod和openmano-gui三部分以及兩個命令行客戶端:openvim和openmano。


OpenMANO框架

OpenMANO架構

OpenMANO架構圖如上,openvimd負責管理外部組件,直接管理計算節點和圖像存儲,並通過Floodlight Openflow控制器來間接管理交換機。


環境需求:

爲了簡單體驗一下openmano,搭建NFV環境至少需要兩臺在同一LAN下的服務器:

  • 一臺服務器用作controller node控制節點,運行openmano組件。Openflow控制器運行在這個節點上。可以使用虛擬機或者在compute node計算機點內部。
  • 另一臺服務器用作compute node計算節點,虛擬機部署在它上面。這臺服務器必須是Linux系統、64bits OS with KVM, qemu and libvirt。爲了發揮最佳性能,compute node計算節點必須遵循指定的方法配置。

ps:在測試API和CLI時,也可以沒有compute node計算節點和Openflow控制器,在‘test’模式下運行openvim。但在這種模式下實際上並沒有部署虛擬機。


安裝

簡單起見,可以將openmano和openvim都安裝在同一臺服務器上。兩者都需要數據庫(如MySQL)。Openvim還依賴於一臺Openflow控制器。

自動安裝

可以下載並運行Ubuntu Server LAMP,執行安裝腳本。

  • 下載一個VDI Ubuntu Server14.10 LAMP。運行虛擬機並執行以下指令:
wget https://github.com/nfvlabs/openmano/raw/master/scripts/install-openmano.sh
chmod +x install-openmano.sh 
sudo ./install-openmano.sh    #mysql-user mysql-passwd
#NOTE: you can pass as parameters the mysql user and password (**root adminuser** for this VM image)
  • 也可以使用其他版本,如 Ubuntu Server 14.04 LTS (ubuntu/reverse), Ubuntu Desktop 64bits 14.04.2 LTS (osboxes/osboxes.org), CentOS 7。

手工安裝

  • 在控制器節點上安裝下列工具包:mysql, python-yaml, python-libvirt, python-bottle, python-mysqldb, python-jsonchema, python-paramiko, python-bs4, python-argcomplete, git。此外還可以安裝screen工具包。

RedHat/Fedora/CentOS

#perhaps epel repository need to be installed: 'yum install epel-release; yum repolist'
sudo yum install     PyYAML      libvirt-python python-bottle MySQL-python \
python-jsonschema python-paramiko python-argcomplete python-requests git screen wget

Ubuntu/Debian

sudo apt-get install python-yaml python-libvirt python-bottle python-mysqldb \
python-jsonschema python-paramiko python-argcomplete python-requests git screen
  • Clone git 代碼倉庫
git clone https://github.com/nfvlabs/openmano.git openmano
  • 創建和初始化數據庫

創建數據庫

mysqladmin -u root -p create vim_db
mysqladmin -u root -p create mano_db

從localhost獲得訪問授權。

mysql> CREATE USER 'vim'@'localhost' identified by 'vimpw';
mysql> GRANT ALL PRIVILEGES ON vim_db.* TO 'vim'@'localhost';
mysql> CREATE USER 'mano'@'localhost' identified by 'manopw';
mysql> GRANT ALL PRIVILEGES ON mano_db.* TO 'mano'@'localhost';  
  • 編輯SQL數據庫VIM文件 host_ranking.sql 和of_ports_correspondence.sql

  • 初始化數據庫

openvim/database_utils/init_vim_db.sh # -uvim -pvimpw
openmano/database_utils/init_mano_db.sh -umano -pmanopw
  • 下載安裝floodlight-0.90 Openflow controller
  • 下載安裝openmano-gui
#allow apache user 'www-data'(or 'apache') grant access to the files, changing user owner
sudo chown -R www-data ./openmano-gui       #or 'apache' for other distributions
#create a link 
sudo ln -s /<path...>/openmano-gui /var/www/html/openmano
#if web can not be loaded check:
#   Web service is running: 'sudo service apache2(or httpd) start'
#   Access permissions, e.g. parent directories have 'x' flag for others:
#       'sudo chmod o+x parent_folders'
#   check SElinux access for Redhat, Centos distributions:
#       sudo  chcon -R --reference=/var/www ./openmano-gui 
#   run 'sudo tail /var/log/apache2/error.log' (or 'sudo tail /var/log/httpd/error_log') to get clues on the problem
#   in case web server fails sending commands to openmano revise iptables (or firewalld) on running port (e.g. 9090)
  • 配置arg-complete和添加openvim and openmano clients環境便令
#creates a bin folder and links to openmano and openvim files inside /home/user/bin folder
mkdir -p ~/bin           #this folder is in the PATH for most Linux distributions
ln -s ${PWD}/openmano/openvim/openvim   ~/bin/openvim
ln -s ${PWD}/openmano/openmano/openmano ~/bin/openmano
#configure argautocomplete for this user
mkdir -p ~/.bash_completion.d
activate-global-python-argcomplete --dest=/home/${USER}/.bash_completion.d
#execute . .bash_completion.d/python-argcomplete.sh at login. Add to .bashrc
echo ". .bash_completion.d/python-argcomplete.sh" >> ~/.bashrc

配置和運行

發佈了45 篇原創文章 · 獲贊 6 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章