openNebula集群搭建
openNebula集群搭建
OpenNebula概述
OpenNebula是专门为云计算打造的开源系统,用户可以使用Xen、KVM、VMware等虚拟化软件一起打造企业云。利用OpenNebula可以轻松构建私有云、混合云、公开云。
OpenNebula提供丰富的接口和许多资源管理、预配置目录,可以快速、安全地构建富有弹性的云平台。
OpenNebula的工作机制相对比较简单,传输方式为SSH将虚拟化管理命令传输至各节点,这样做的好处是无需安装额外的服务或软件,降低了软件的复杂性。
环境介绍及部署前准备
主控端部署:
这里直接用hosts文件做DNS解析
[root@node4 ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
172.30.1.24 cloud
172.30.1.25 node1
172.30.1.26 node2
172.30.1.27 node3
172.30.1.28 node4
将所有主机上hosts文件进行替换:
[root@cloud ~]# scp /etc/hosts root@node1:/etc/hosts
[root@cloud ~]# scp /etc/hosts root@node4:/etc/hosts
关闭SELINUX
SELINUX=disabled
在每台主机上关闭相关安全策略:
[root@cloud ~]# systemctl stop firewalld
[root@cloud ~]# iptables -F
[root@cloud ~]# setenforce 0
配置epel源地和opennebula源:(每台主机都要添加)
centos7
cat << "EOT" > /etc/yum.repos.d/opennebula.repo
[opennebula]
name=opennebula
baseurl=https://downloads.opennebula.org/repo/5.10/CentOS/7/$basearch
enabled=1
gpgkey=https://downloads.opennebula.org/repo/repo.key
gpgcheck=1
repo_gpgcheck=1
EOT
[root@node4 yum.repos.d]# cat opennebula.repo
[opennebula]
name=OpenNebula Community Edition
baseurl=https://downloads.opennebula.io/repo/6.0/CentOS/8/$basearch
enabled=1
gpgkey=https://downloads.opennebula.io/repo/repo.key
gpgcheck=1
repo_gpgcheck=1
[root@node4 yum.repos.d]# pwd
/etc/yum.repos.d
[root@node4 yum.repos.d]#
安装EPEL源:
[root@cloud ~]# yum -y install epel-release
安装OpenNebula主控依赖:
[root@cloud ~]# yum -y install opennebula-server opennebula-sunstone opennebula-ruby opennebula-gate opennebula-flow
安装OpenNebula主控额外依赖和主程序:
[root@cloud ~]# /usr/share/one/install_gems
根据自己系统选择,我是centos所以选1
修改默认的oneadmin密码(这个账号密码用于登录OpenNebula的控制面板):
[root@opennebula ~]# echo "oneadmin:910zxq" > /var/lib/one/.one/one_auth
1. 安装步骤
1.关闭防火墙
1、关闭防火墙
关闭SELINUX
SELINUX=disabled
在每台主机上关闭相关安全策略:
[root@cloud ~]# systemctl stop firewalld
[root@cloud ~]# iptables -F
[root@cloud ~]# setenforce 0
2.配置epel源地和opennebula源
centos7
cat << "EOT" > /etc/yum.repos.d/opennebula.repo
[opennebula]
name=opennebula
baseurl=https://downloads.opennebula.org/repo/5.10/CentOS/7/$basearch
enabled=1
gpgkey=https://downloads.opennebula.org/repo/repo.key
gpgcheck=1
repo_gpgcheck=1
EOT
centos8
cat << "EOT" > /etc/yum.repos.d/opennebula.repo
[opennebula]
name=opennebula
baseurl=https://downloads.opennebula.org/repo/5.10/CentOS/8/$basearch
enabled=1
gpgkey=https://downloads.opennebula.org/repo/repo.key
gpgcheck=1
repo_gpgcheck=1
EOT
3.安装软件
yum install epel-release
在 RHEL 8 上,您可以通过运行以下命令启用 EPEL:
rpm -ivh https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
安装相关主控相关依赖包Install OpenNebula
yum install opennebula-server opennebula-sunstone opennebula-ruby opennebula-gate opennebula-flow -y
CentOS/RHEL 软件包说明
OpenNebula 前端和虚拟化主机的软件包如下:
opennebula :命令行界面。
opennebula-server :主OpenNebula守护进程、调度程序等。
opennebula-Sunstone : Sunstone (GUI)和 EC2 API 。
opennebula-gate : OneGate 服务器,支持虚拟机和OpenNebula之间的通信。
opennebula-flow : OneFlow 管理服务和弹性。
opennebula-provision : OneProvision 在远程裸机云提供商上部署新集群。
opennebula-node-kvm :安装oneadmin user、libvirt和kvm的元包。
opennebula-common :OpenNebula软件包的通用文件。
opennebula-rubygems :依赖于所有必需的 Ruby 宝石的元包。
opennebula-rubygem-$NAME :包含红宝石的包装 $NAME.
opennebula-debuginfo :包含调试信息的包。
opennebula-ruby :Ruby Bindings。
opennebula-java :Java Bindings。
python-pyone :Python Bindings。
python3-pyone :Python3 Bindings。
注意:配置文件位于 /etc/one 和 /var/lib/one/remotes/etc.
4、Ruby 运行环境安装(V5.10版本之后可选)
从 OpenNebula 5.10 开始,此步骤是 可选的 ,所有必需的 Ruby 宝石都作为一组 opennebula-rubygem-$NAME opennebula-rubygem-$NAME 包和 opennebula-rubygems 元包提供。Ruby gem 安装到专用目录中 /usr/share/one/gems-dist/,但OpenNebula通过(符号链接)位置使用它们 /usr/share/one/gems/ 这指向 gems-dist/ 目录。当 gems/ 目录(默认)存在,OpenNebula 专门 通过从搜索路径中删除任何其他系统 Ruby gems 位置来
查看:
ls -lad /usr/share/one/gems*
lrwxrwxrwx 1 root root 9 Aug 13 11:41 /usr/share/one/gems -> gems-dist
drwxr-xr-x 9 root root 4096 Aug 13 11:41 /usr/share/one/gems-dist
如果要使用系统范围的 Ruby gem 而不是打包的 Ruby gem,请删除符号链接 /usr/share/one/gems/ 并使用 install_gems 脚本如下所述。被移除的 /usr/share/one/gems/ 符号链接 不会在下一次OpenNebula升级时再次创建 。OpenNebula 附带的 Ruby gem 无法卸载,但可以通过删除 /usr/share/one/gems/ 符号链接。
如果自定义驱动程序或钩子需要额外的 Ruby gem,则必须将它们安装到引入的专用目录中。例如,在 中设置 gem 名称 $GEM_NAME 并在特权用户根目录下运行:
export GEM_PATH=/usr/share/one/gems/
export GEM_HOME=/usr/share/one/gems/
gem install --no-document --conservative $GEM_NAME
一些OpenNebula组件需要Ruby库。OpenNebula提供了一个脚本,用于安装所需的gem以及所需的一些开发库包。
作为根用户执行:
自动修复:
test -L /usr/share/one/gems && unlink /usr/share/one/gems
/usr/share/one/install_gems
手动修复:
sqlite3 development library
mysql client development library
curl development library
libxml2 and libxslt development libraries
ruby development library
gcc and g++
make
以上安装包
5、mysql数据库配置
1、创建用户
GRANT ALL PRIVILEGES ON opennebula.* TO 'oneadmin' IDENTIFIED BY '<thepassword>';
2、配置事务隔离级别
SET GLOBAL TRANSACTION ISOLATION LEVEL READ COMMITTED;
3、配置oned.configuration
# Sample configuration for MySQL
DB = [ backend = "mysql",
server = "localhost",
port = 0,
user = "oneadmin",
passwd = "<thepassword>",
db_name = "opennebula" ]
4、定期清理索引
alter table vm_pool drop index ftidx;
alter table vm_pool add fulltext index ftidx (search_token);
5、虚拟机自定义配置
6、启动OpenNebula
1、使用 oneadmin 用户
su oneadmin
2、修改默认密码
echo "oneadmin:mypassword" > ~/.one/one_auth
3、启动
systemctl start opennebula
systemctl start opennebula-sunstone
4、出错验证Ruby环境是否有问题
7、验证安装
1、命令:oneuser show
输出:
USER 0 INFORMATION
ID : 0
NAME : oneadmin
GROUP : oneadmin
PASSWORD : 3bc15c8aae3e4124dd409035f32ea2fd6835efc9
AUTH_DRIVER : core
ENABLED : Yes
USER TEMPLATE
TOKEN_PASSWORD="ec21d27e2fe4f9ed08a396cbd47b08b8e0a4ca3c"
RESOURCE USAGE & QUOTAS
2、网页
http://<frontend_address>:9869
3、错误日志
/var/log/one/sunstone.log
/var/log/one/sunstone.error
4、程序说明
Path Description
/etc/one/ Configuration Files
/var/log/one/ Log files, notably: oned.log, sched.log, sunstone.log and <vmid>.log
/var/lib/one/ oneadmin home directory
/var/lib/one/datastores/<dsid>/ Storage for the datastores
/var/lib/one/vms/<vmid>/ Action files for VMs (deployment file, transfer manager scripts, etc…)
/var/lib/one/.one/one_auth oneadmin credentials
/var/lib/one/remotes/ Probes and scripts that will be synced to the Hosts
/var/lib/one/remotes/hooks/ Hook scripts
/var/lib/one/remotes/vmm/ Virtual Machine Manager Driver scripts
/var/lib/one/remotes/auth/ Authentication Driver scripts
/var/lib/one/remotes/im/ Information Manager (monitoring) Driver scripts
/var/lib/one/remotes/market/ MarketPlace Driver scripts
/var/lib/one/remotes/datastore/ Datastore Driver scripts
/var/lib/one/remotes/vnm/ Networking Driver scripts
/var/lib/one/remotes/tm/ Transfer Manager Driver scripts
5、端口说明
Port Description
9869 Sunstone server.
29876 VNC proxy port, used for translating and redirecting VNC connections to the hypervisors.
2633 OpenNebula daemon, main XML-RPC API endpoint.
2474 OneFlow server. This port only needs to be opened if OneFlow server is used.
5030 OneGate server. This port only needs to be opened if OneGate server is used.
端口都可以自定义配置,或者代理。
8、后续步骤
1、重置密码
oneuser passwd 0 <PASSWORD>
echo 'oneadmin:PASSWORD' > /var/lib/one/.one/one_auth
2、Opennebula 扩展应用
OneFlow
说明
用于将多个虚拟机应用程序定义和管理为单个实体。OneFlow还让您为应用程序组件定义依赖关系和自动扩展策略。
配置文件
################################################ #############################
服务器配置
################## ################################################ #############
#OpenNebula 守护程序联系信息#
:one_xmlrpc : http:// localhost:2633 / RPC2
#生命周期管理器步骤之间的时间(以秒为单位)
#
:lcm_interval : 30
#OneFlow服务器将运行的主机和端口
:host : 127.0.0.1
:port : 2474
################################################ #############################
默认值
################### ################################################ ############
#缩放操作后的默认冷却时间,以秒为单位
:default_cooldown : 300
#默认关闭操作。值:'shutdown','shutdown-hard'
:shutdown_action : 'shutdown'
#默认oneflow动作选项当只有一个被提供
:action_number : 1
:action_period : 60
#oneflow创建的虚拟机的默认名称。您可以使用
以下
#个
占位符中的任意一个:#$ SERVICE_ID #$ SERVICE_NAME
#$ ROLE_NAME
#$ VM_NUMBER
:vm_name_template : '$ ROLE_NAME_ $ VM_NUMBER_(service_ $ SERVICE_ID)'
################################################ ###########
Auth
#################################### ########################
#与OpenNebula核心进行通信的身份验证驱动程序
#-密码,用于令牌的对称密码加密
#-x509,用于令牌的x509证书加密
:core_auth : 密码
################################################ #############################
日志
################## ################################################ ############
#日志调试级别
#0 =错误,1 =警告,2 =信息,3 =调试
#
:debug_level : 2
3、应用
启动:
service opennebula-flow start
日志:
/var/log/one/oneflow.error
/var/log/one/oneflow.log
2、Opennedula node节点安装
1、要添加OpenNebula存储库,请以root用户身份执行以下操作:
cat << "EOT" > /etc/yum.repos.d/opennebula.repo
[opennebula]
name=OpenNebula Community Edition
baseurl=https://downloads.opennebula.io/repo/6.1/CentOS/8/$basearch
enabled=1
gpgkey=https://downloads.opennebula.io/repo/repo.key
gpgcheck=1
repo_gpgcheck=1
EOT
yum makecache
yum -y install epel-release
rpm -ivh https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
2、安装软件
执行以下命令安装 OpenNebula KVM 节点软件包并重新启动 libvirt 以使用 OpenNebula 提供的配置文件:
sudo yum install opennebula-node-kvm
sudo systemctl restart libvirtd
可选:较新的 QEMU/KVM(仅限 CentOS/RHEL 7)
qemu-kvm安装
sudo yum install centos-release-qemu-ev
sudo yum install qemu-kvm-ev
3、禁用SElinux
vim /etc/selinux/config
SELINUX=disabled
4、配置无密码的SSH
1、前端服务器以前端服务器,节点服务器为参数,生成known_hosts文件
ssh-keyscan <frontend> <node1> <node2> <node3> ... >> /var/lib/one/.ssh/known_hosts
2、服务器分发文件
scp -rp /var/lib/one/.ssh <node1>:/var/lib/one/
scp -rp /var/lib/one/.ssh <node2>:/var/lib/one/
scp -rp /var/lib/one/.ssh <node3>:/var/lib/one/
### FAQ
选择导入虚拟机后,会修改默认的/etc/libvirt/qemu.conf
还原为
user = "qemu"
group = "qemu"
就可以继续使用命令行启动
5.存储配置(可选)
在默认的OpenNebula配置中,本地存储用于存储映像和运行虚拟机。这对于基本用途来说已经足够了,除非您想要部署高级存储解决方案,否则您现在不需要采取任何额外的步骤。
按照开放 云存储设置 指南了解如何使用 Ceph、NFS、LVM 等。
按照开放 云存储设置指南了解如何使用 Ceph、NFS、LVM 等。
6.Adding Host to OpenNebula
打开此处记录的日光石 here。在左侧菜单中,转到 基础架构 → 主机 。点击 + 按钮。
Then fill in the hostname, FQDN, or IP of the Node in the Hostname
field.
最后,返回到主机 Hosts 列表,并检查主机是否已切换到 ON
地位。最多可能需要 1 分钟。单击刷新按钮以更频繁地检查状态。
7.Add Host with CLI
要将节点添加到云,请运行此命令 oneadmin
在前端(替换 <node01>
使用您的节点主机名):
$ onehost create <node01> -i kvm -v kvm
$ onehost list
ID NAME CLUSTER RVM ALLOCATED_CPU ALLOCATED_MEM STAT
1 localhost default 0 - - init
# After some time (up to 1 minute)
$ onehost list
ID NAME CLUSTER RVM ALLOCATED_CPU ALLOCATED_MEM STAT
0 node01 default 0 0 / 400 (0%) 0K / 7.7G (0%) on
8.导入现有虚拟机(可选)
(可选)可以导入已在主机上运行的虚拟机。您将能够从OpenNebula控制此类虚拟机,尽管操作集大大减少(与从OpenNebula启动的虚拟机相比)。按照Importing Wild VMs (导入虚拟机)指南进行操作。
以后可以随时导入虚拟机。
现在,您可以继续:
扩展和控制您的云。
openNebula集群搭建的更多相关文章
- 【Oracle 集群】Linux下Oracle RAC集群搭建之Oracle DataBase安装(八)
Oracle 11G RAC数据库安装(八) 概述:写下本文档的初衷和动力,来源于上篇的<oracle基本操作手册>.oracle基本操作手册是作者研一假期对oracle基础知识学习的汇总 ...
- 【Oracle 集群】Linux下Oracle RAC集群搭建之基本测试与使用(九)
Oracle 11G RAC数据库安装(九) 概述:写下本文档的初衷和动力,来源于上篇的<oracle基本操作手册>.oracle基本操作手册是作者研一假期对oracle基础知识学习的汇总 ...
- 【Data Cluster】真机环境下MySQL数据库集群搭建
真机环境下MySQL-Cluster搭建文档 摘要:本年伊始阶段,由于实验室对不同数据库性能测试需求,才出现MySQL集群搭建.购置主机,交换机,双绞线等一系列准备工作就绪,也就开始集群搭建.起初笔 ...
- (四)Spark集群搭建-Java&Python版Spark
Spark集群搭建 视频教程 1.优酷 2.YouTube 安装scala环境 下载地址http://www.scala-lang.org/download/ 上传scala-2.10.5.tgz到m ...
- (三)Spark-Hadoop集群搭建-Java&Python版Spark
Spark-Hadoop集群搭建 视频教程: 1.优酷 2.YouTube 配置java 启动ftp [root@master ~]# /etc/init.d/vsftpd restart 关闭 vs ...
- Mosquitto搭建Android推送服务(三)Mosquitto集群搭建
文章钢要: 1.进行双服务器搭建 2.进行多服务器搭建 一.Mosquitto的分布式集群部署 如果需要做并发量很大的时候就需要考虑做集群处理,但是我在查找资料的时候发现并不多,所以整理了一下,搭建简 ...
- Mongodb集群搭建的三种方式
转自:http://blog.csdn.net/luonanqin/article/details/8497860 MongoDB是时下流行的NoSql数据库,它的存储方式是文档式存储,并不是Key- ...
- 分布式架构中一致性解决方案——Zookeeper集群搭建
当我们的项目在不知不觉中做大了之后,各种问题就出来了,真jb头疼,比如性能,业务系统的并行计算的一致性协调问题,比如分布式架构的事务问题, 我们需要多台机器共同commit事务,经典的案例当然是银行转 ...
- 从零自学Hadoop(06):集群搭建
阅读目录 序 集群搭建 监控 系列索引 本文版权归mephisto和博客园共有,欢迎转载,但须保留此段声明,并给出原文链接,谢谢合作. 文章是哥(mephisto)写的,SourceLink 序 上一 ...
- MongoDB高可用复制集分片集群搭建
1 逻辑架构 1.1 逻辑架构图 1.2 组件说明 一.mongos(query routers):查询路由,负责client的连接,并把任务分给shards,然后收集结果.一 ...
随机推荐
- 安全测试实践-万家APP越权逻辑漏洞挖掘
逻辑漏洞会导致业务面临着巨大的经济损失隐患与敏感数据泄露的风险,本文从安全测试的角度,以越权逻辑漏洞为例,介绍逻辑漏洞的挖掘方法和实践过程. 一.什么是越权逻辑漏洞 定义: 指由于系统的权限控制逻辑不 ...
- 如何用ReadWriteLock实现一个通用的缓存中心?
摘要:在并发场景中,Java SDK中提供了ReadWriteLock来满足读多写少的场景. 本文分享自华为云社区<[高并发]基于ReadWriteLock开了个一款高性能缓存>,作者:冰 ...
- 【Python&GIS】GDAL栅格转面&计算矢量面积
GDAL(Geospatial Data Abstraction Library)是一个在X/MIT许可协议下的开源栅格空间数据转换库.它利用抽象数据模型来表达所支持的各种文件格式.它 ...
- AI在金融体系下如何引导API安全?
AI在金融体系下如何引导API安全? 随着金融科技的快速发展,越来越多的金融机构开始使用API(应用程序接口)进行数字化转型,加速业务流程和数据交换.然而,API在金融体系下面临诸多安全威胁,如恶意攻 ...
- 使用默认pypi源出现连接超时
背景信息 安装 dataworks sdk 时报错,原因是连接默认的 pypi 仓库超时 pip install aliyun-python-sdk-dataworks-public==4.2.1 报 ...
- CKS 考试题整理 (18)-TLS 安全配置
Task 通过 TLS 加强 kube-apiserver 安全配置,要求 kube-apiserver 除了 VersionTLS13 及以上的版本可以使用,其他版本都不允许使用. 密码套件(Cip ...
- 大数据实战手册-开发篇之IO
2.4 sparkContext IO:读 2.4.1 textFile # Load a text file and convert each line to a Row. lines = sc.t ...
- Java输出100以内的所有质数
代码如下: public static void main(String[] args) { for(int k=2;k<=100;k++) { boolean flag = true; for ...
- PHP站群询盘订单提交过滤系统,2018年作品
//作者主页: https://www.bz80.vip header("Content-type: text/html; charset=utf-8"); //UTF8编码,避免 ...
- 大数据面试题集锦-Hadoop面试题(四)-YARN
你准备好面试了吗?这里有一些面试中可能会问到的问题以及相对应的答案.如果你需要更多的面试经验和面试题,关注一下"张飞的猪大数据分享"吧,公众号会不定时的分享相关的知识和资料. 目录 ...