你好,游客 登录 注册 发布搜索
背景:
阅读新闻

重磅图文详解:OpenNebula安装和节点配置实战

[日期:2015-07-14] 来源:51CTO  作者: [字体: ]

  OpenNebula 4.10入门之安装和节点配置

  环境说明:

  所有系统环境管理端和节点宿主机都采用CentOS 6.6 x86_64

  服务器使用情况:

  1. 控制节点和存储节点使用同一台服务器.

  2. 计算节点分别使用两台服务器

  系统约定:

  cloud.webxury.com 192.168.15.100 (计算节点)

  cloud1.webxury.com 192.168.15.101 (计算节点)

  storage.webxury.com 192.168.15.200 (存储和控制)

  系统最小化安装(略过),并且根据约定配置好IP地址,修改好计算机名,检查系统时间是否正确,确保机器能和外界通信,并且将以上内容添加到本地/etc/hosts文件内,确保域名解析正常,并且永久关闭SELINUX以及IPTABLES,并且重启,方可进行安装部署.因为是测试,所以暂时关闭,正式上线,需要添加需要权限以及防火墙的端口设定.

  控制台安装篇

  1. 为系统添加EPEL源,添加EPEL源的原因是因为要解决一些在安装上的依赖

  yum –y install epel-release

  2. 为系统添加Opennebula官方源

  # vi /etc/yum.repos.d/opennebula.repo [opennebula] name=opennebula baseurl=http://downloads.opennebula.org/repo/4.10/CentOS/6/x86_64/ enabled=1 gpgcheck=0

  3. 生成源缓存(个人习惯)

  yum makecache

  4. 安装Opennebula控制台.

  1.)# yum –y install opennebula-server opennebula-sunstone

  安装完成之后创建如下用户以及目录文件:

  # grep oneadmin /etc/passwd oneadmin:x:9869:9869::/var/lib/one:/bin/bash # ls -ld /etc/one/ //OpenNebula相关配置文件所在目录 drwxr-x---. 11 root oneadmin 4096 Feb 2 11:35 /etc/one/ #ls/etc/init.d/opennebula* /etc/init.d/opennebula /etc/init.d/opennebula-occi /etc/init.d/opennebula-sunstone # ls -ld /var/log/one/ drwxr-x---. 2 oneadmin oneadmin 4096 Feb 2 01:13 /var/log/one/

  2).安装组件

  # /usr/share/one/install_gems lsb_release command not found. If you are using a RedHat based distribution install redhat-lsb Select your distribution or press enter to continue without installing dependencies. 0. CentOS/RedHat 1. Ubuntu/Debian

  选择相对应的操作系统,我们选择0

  5. 默认OpenNebula数据存储使用sqlite,如果需要使用MySQL,则需要做如下操作

  1).安装mysql数据库

  yum –y install mysql mysql-server #service mysqld start #chkconfig mysqld on

  并且设置MYSQL密码(忽略)

  2).创建数据库

  $ mysql -u root -p Enter password: Welcome to the MySQL monitor. [...] mysql> GRANT ALL PRIVILEGES ON opennebula.* TO '用户名' IDENTIFIED BY '密码'; Query OK, 0 rows affected (0.00 sec)

  3).设置隔离级别

  mysql> SET GLOBAL TRANSACTION ISOLATION LEVEL READ COMMITTED;

  6. 修改配置文件如下 [用户、端口、密码、库名和实际情况对应修改:

  # vi /etc/one/oned.conf … … #DB = [ backend = "sqlite" ] (记得把这行注销) # Sample configuration for DB = [ backend = "mysql", server = "localhost", port = 0, (这里0的意思代表使用MYSQL默认3306端口,所以不需要修改) user = "刚才设置的用户名", passwd = "刚才设置的密码", db_name = "opennebula" ] … …

  7. 修改sunstone默认监听IP:

  vi /etc/one/sunstone-server.conf

  找到 :host: 127.0.0.1

  修改成 :host: 0.0.0.0

  8.启动相关服务

  # service opennebula start # service opennebula-sunstone start #chkconfig opennebula on #chkconfig opennebula-sunstone on

  8.添加NFS共享存储目录

  vi /etc/exports /var/lib/one/ *(rw,sync,no_subtree_check,root_squash)

  启动服务

  # service rpcbind restart # service nfs restart # chkconfig nfs on # chkconfig rpcbind on

  9.添加SSH公共KEY

  # su - oneadmin $ vi ~/.ssh/config

  添加以下内容

  Host * StrictHostKeyChecking no UserKnownHostsFile /dev/null

  修改文件权限

  $ chmod 600 ~/.ssh/config

  10.修改oneadmin密码

  #su oneadmin $passwd oneadmin

  注:测试过程中因为测试环境服务端时间不对,导致cookie被忽略,OpenNebula Sunstone选择Keep me logged in一直登陆不上或者直接登陆很快退出,寻找原因花了很长时间,最后调整到正确时间,登陆显示ok。

  P.S: 时间是一个非常容易被我们忽略的问题,切记切记!

  完成以上步骤之后,浏览器登陆 http://ip:9869 即可

  节点安装篇

  系统约定:

  cloud.webxury.com 192.168.15.100 (计算节点)

  cloud1.webxury.com 192.168.15.101 (计算节点)

  storage.webxury.com 192.168.15.200 (存储和控制)

  系统最小化安装(略过),并且根据约定配置好IP地址,修改好计算机名,检查系统时间是否正确,确保机器能和外界通信,并且将以上内容添加到本地/etc/hosts文件内,确保域名解析正常,并且永久关闭SELINUX以及IPTABLES,并且重启,方可进行安装部署.因为是测试,所以暂时关闭,正式上线,需要添加需要权限以及防火墙的端口设定.

  安装篇

  1.为系统添加EPEL源,添加EPEL源的原因是因为要解决一些在安装上的依赖

  yum –y install epel-release

  2.为系统添加Opennebula官方源

  # vi /etc/yum.repos.d/opennebula.repo [opennebula] name=opennebula baseurl=http://downloads.opennebula.org/repo/4.10/CentOS/6/x86_64/ enabled=1 gpgcheck=0

  3.生成源缓存(个人习惯)

  yum makecache

  4.安装节点组件

  yum –y install opennebula-node-kvm

  启动相关服务

  # service messagebus start # service libvirtd start # chkconfig messagebus on # chkconfig libvirtd on

  5.给系统网卡做桥接

  首先先复制一份ifcfg-eth0的文件,重命名为ifcfg-br0

  网卡路径: /etc/sysconfig/network-scripts/ifcfg-eth0

  拷贝一份eth0,并且重命名为br0

  cd /etc/sysconfig/network-scripts/

  cp ifcfg-eth0 ifcfg-br0

  修改网卡文件eth0

  DEVICE=eth0 BOOTPROTO=none NM_CONTROLLED=no ONBOOT=yes TYPE=Ethernet BRIDGE=br0

  修改刚才拷贝的ifcfg-br0文件

  DEVICE=br0(记得修改网卡名称,因为是复制过来的) TYPE=Bridge IPADDR=192.168.15.100 NETMASK=255.255.255.0 GATEWAY=192.168.15.1 DNS1=8.8.8.8 DNS2=8.8.4.4 ONBOOT=yes BOOTPROTO=static NM_CONTROLLED=no

  重启网卡

  # service network restart

  6. 挂载存储的NFS共享目录

  编辑: /etc/fstab

  添加以下内容

  192.168.15.200:/var/lib/one /var/lib/one/ nfs soft,intr,rsize=8192,wsize=8192,noauto

  7. 修改oneadmin密码

  #passwd oneadmin

  回到控制节点服务器,让SSH无密码登陆节点服务器,否则控制节点添加计算节点将会失败

  [oneadmin@storage ~]# su oneadmin [oneadmin@storage ~]$ ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/var/lib/one/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /var/lib/one/.ssh/id_rsa. Your public key has been saved in /var/lib/one/.ssh/id_rsa.pub. 一路回车直到结束 [oneadmin@storage~]$ssh-copy-id -i /var/lib/one/.ssh/id_rsa.pub oneadmin@cloud.webxury.com oneadmin@cloud.webxury.com 's password: .ssh/authorized_keys

  根据提示输入密码后,已经成功登陆节点服务器,然后退出,尝试再次从控制节点服务器,ssh进入节点服务器,已经是不需要密码了,说明设置成功,然后退出,并且重启服务器,服务器启动后,请检查是否挂载成功.

  注:挂载的时候我遇到一个问题,我把storage挂载到每一个节点下的/var/lib/one/目录下,发现权限已经改变,默认权限所属用户组和用户名都是oneadmin,但是挂在后发现用户名密码都是nobody,所以我们要修改/etc/idmapd.conf这个文件,把Nobody-User=XXX修改成oneadmin,Nobody-Group=XXX也同样修改成oneadmin,并且重启服务,service rpcidmapd restart.

  安装教程基本完成,可以简单做测试,现在我们打开UI界面.

  

重磅长文:OpenNebula安装和节点配置实战

 

  现在我们开始创建集群.

  

重磅长文:OpenNebula安装和节点配置实战

 

  

重磅长文:OpenNebula安装和节点配置实战

 

  现在我们开始添加节点服务器,记得将节点添加到集群选项里面,看操作.

  

重磅长文:OpenNebula安装和节点配置实战

 

  

重磅长文:OpenNebula安装和节点配置实战

 

  节点添加完成,我们现在开始添加网络.请看操作.

  

重磅长文:OpenNebula安装和节点配置实战

 

  

重磅长文:OpenNebula安装和节点配置实战

 

  

重磅长文:OpenNebula安装和节点配置实战

 

  

重磅长文:OpenNebula安装和节点配置实战

 

  

重磅长文:OpenNebula安装和节点配置实战

 

  

重磅长文:OpenNebula安装和节点配置实战

 

  

重磅长文:OpenNebula安装和节点配置实战

 

  网络添加完成了,请记得把网络添加到集群里面,否则会出现错误.

  最后,我们检查集群,将存储添加进去,然后检查一遍,是否全部正确.

  

重磅长文:OpenNebula安装和节点配置实战

 

  

重磅长文:OpenNebula安装和节点配置实战

 

  

重磅长文:OpenNebula安装和节点配置实战

 

  

重磅长文:OpenNebula安装和节点配置实战

 

  

重磅长文:OpenNebula安装和节点配置实战

 

  现在看到集群里面,有2个计算节点,一个虚拟网络,3个存储.这个是正确的.

  现在我们导入官方的一个模板和镜像文件做测试.

  

重磅长文:OpenNebula安装和节点配置实战

 

  

重磅长文:OpenNebula安装和节点配置实战

 

  

重磅长文:OpenNebula安装和节点配置实战

 

  

重磅长文:OpenNebula安装和节点配置实战

 

  经过几分钟,已经成功导入,导入的时间,是根据网络而定,因为要下载回来,所以是需要时间的.

  导入镜像的时候,它配有一个模板文件,我们稍微拿来改动一下就可以使用,下面看我操作.

  

重磅长文:OpenNebula安装和节点配置实战

 

  

重磅长文:OpenNebula安装和节点配置实战

 

  

重磅长文:OpenNebula安装和节点配置实战

 

  

重磅长文:OpenNebula安装和节点配置实战

 

  接下来我们可以创建虚拟机来测试一下.

  

重磅长文:OpenNebula安装和节点配置实战

 

  

重磅长文:OpenNebula安装和节点配置实战

 

  现在看见虚拟机可以运行了.但是有一个地方需要注意和修改,不然虚拟机一直会停留在等待,而不会运行.

  用SSH 进入控制台的主机,找到/etc/sched.conf这个文件,找到调度配置文件,以下请根据自己需求去修改.

  DEFAULT_SCHED: Definition of the default scheduling algorithm # - policy: # 0 = Packing. Heuristic that minimizes the number of hosts in use by # packing the VMs in the hosts to reduce VM fragmentation # 1 = Striping. Heuristic that tries to maximize resources available for # the VMs by spreading the VMs in the hosts # 2 = Load-aware. Heuristic that tries to maximize resources available for # the VMs by using those nodes with less load # 3 = Custom. # - rank: Custom arithmetic exprission to rank suitable hosts based in their # attributes # 4 = Fixed. Hosts will be ranked according to the PRIORITY attribute found # in the Host or Cluster template. # # DEFAULT_DS_SCHED: Definition of the default storage scheduling algorithm # - policy: # 0 = Packing. Tries to optimize storage usage by selecting the DS with # less free space # 1 = Striping. Tries to optimize I/O by distributing the VMs across # datastores. # 2 = Custom. # - rank: Custom arithmetic exprission to rank suitable datastores based on # their attributes # 3 = Fixed. Datastores will be ranked according to the PRIORITY attribute # found in the Datastore template. 这个是调度的说明,我用的是2和3的调度机制 DEFAULT_SCHED = [ policy = 2 ] DEFAULT_DS_SCHED = [ policy = 3 ]

  请根据自己需求去修改.

  下面是修改高可用配置.实现其中一台计算节点服务器宕机后,另外一个计算节点自动接管

  编辑/etc/one/oned.conf文件,找到

  HOST_HOOK = [ name = "error", on = "ERROR", command = "ft/host_error.rb", arguments = "$ID -m -p 1",(原来这里的1是5,我改成了1,是因为检测时间为5分钟,我改成了1分钟,1分钟后计算节点还在宕机,另外一台则自动接管) remote = "no" ] VM_HOOK = [ name = "advanced_hook", on = "CUSTOM", state = "ACTIVE", lcm_state = "BOOT_UNKNOWN", command = "log.rb", arguments = "$ID $PREV_STATE $PREV_LCM_STATE" ]

  #号去掉,然后重启服务.

  

 

  

 

  

 

  

 

  

 

  

  1分钟后,另外一台主机自动接管了,虚拟机恢复正常,可以根据自己的需求来修改钩子触发的配置文件,来达到高可用目的.

收藏 推荐 打印 | 录入:574107552 | 阅读:
相关新闻      
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数
点评:
       
评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款