高可用OpenStack(Queen版)集群-13.分布式存储Ceph

参考文档:

  1. Install-guide:https://docs.openstack.org/install-guide/
  2. OpenStack High Availability Guide:https://docs.openstack.org/ha-guide/index.html
  3. 理解Pacemaker:http://www.cnblogs.com/sammyliu/p/5025362.html
  4. Ceph: http://docs.ceph.com/docs/master/start/intro/

十七.分布式存储Ceph

1. 设置yum源

# 在全部控制与计算节点设置epel与ceph yum源(base yum源已更新),以controller01节点为例;

# epel:http://mirrors.aliyun.com/repo/

[ro[email protected] ~]# wget -O /etc/yum.repos.d/epel-7.repo http://mirrors.aliyun.com/repo/epel-7.repo

# ceph:http://mirrors.aliyun.com/ceph/

# 编辑ceph.repo文件,使用luminous版本

[[email protected] ~]# vim /etc/yum.repos.d/ceph.repo

[ceph]

name=ceph

baseurl=http://mirrors.aliyun.com/ceph/rpm-luminous/el7/x86_64/

enabled=1

gpgcheck=1

type=rpm-md

gpgkey=http://mirrors.aliyun.com/ceph/keys/release.asc

[ceph-noarch]

name=cephnoarch

baseurl=http://mirrors.aliyun.com/ceph/rpm-luminous/el7/noarch/

enabled=1

gpgcheck=1

type=rpm-md

gpgkey=http://mirrors.aliyun.com/ceph/keys/release.asc

[ceph-source]

name=ceph-source

baseurl=http://mirrors.aliyun.com/ceph/rpm-luminous/el7/SRPMS/

enabled=1

gpgcheck=1

type=rpm-md

gpgkey=http://mirrors.aliyun.com/ceph/keys/release.asc

# 重新加载yum源

[[email protected] ~]# yum clean all

[[email protected] ~]# yum makecache

# 查看yum源

[[email protected] ~]# yum repolist

2. 环境

基础环境,如hosts,时间同步ntp,开放端口iptables等相关操作,请见:https://www.cnblogs.com/netonline/p/9180299.html

3. 创建用户

1)创建用户

# 创建ceph-deploy用户,官方文档不建议在生产环境中使用root用户进行部署;

# 新用户名不能是"ceph",其已保留给ceph服务守护进程使用;

# 新用户需具备无密码使用sudo的权限,因ceph在安装过程中不支持输入密码;

# 新用户需要在全部控制与存储(这里即计算)节点创建,以controller01节点为例

[[email protected] ~]# useradd -d /home/ceph -m cephde

[[email protected] ~]# passwd cephde

New password: storage_pass

Retype new password: storage_pass

# 修改visudo文件,使cephde用户在sudo列表中;

# 在92行" root ALL=(ALL) ALL"下新增一行:" cephde ALL=(ALL) ALL"

[[email protected] ~]# visudo

93 cephde ALL=(ALL) ALL

2)用户赋权

# 设置cephde用户具备无密码sudo(root)权限;

# 切换到cephde用户下操作

[[email protected] ~]# su - cephde

[[email protected] ~]$ echo "cephde ALL = (root) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/cephde

[sudo] password for cephde:storage_pass

[[email protected] ~]$ sudo chmod 0440 /etc/sudoers.d/cephde

4. 设置ssh免密登陆

1)生成秘钥

# ceph-deploy不支持密码输入,需要在管理控制节点生产ssh秘钥,并将公钥分发到各ceph节点;

# 在用户cephde下生成秘钥,不能使用sudo或root用户;

# 默认在用户目录下生成~/.ssh目录,含生成的秘钥对;

# "Enter passphrase"时,回车,口令为空;

# 另外3个控制节点均设置为ceph管理节点,应该使3各控制管理节点都可以ssh免密登陆到其他所有控制与存储节点

[[email protected] ~]# su - cephde

[[email protected] ~]$ ssh-keygen -t rsa

Enter file in which to save the key (/home/ceph/.ssh/id_rsa):

Enter passphrase (empty for no passphrase):

Enter same passphrase again:

2)分发秘钥

# 前提是各控制与存储节点已生成相关用户;

# 初次连接其他节点时需要确认;

# 首次分发公钥需要密码;

# 分发成功后,在~/.ssh/下生成known_hosts文件,记录相关登陆信息;

# 以controller01节点免密登陆controller02节点为例;另外3个控制节点均设置为ceph管理节点,应该使3各控制管理节点都可以ssh免密登陆到其他所有控制与存储节点

[[email protected] ~]$ ssh-copy-id [email protected]

Are you sure you want to continue connecting (yes/no)? yes

[email protected]‘s password:

3)分发秘钥(optional)

# 在root账号主目录下,生成~/.ssh/config文件,这样在控制管理节点上执行"ceph-deploy"时可不切换用户或指定"--username {username}";

[[email protected] ~]# cat ~/.ssh/config

# ceph-deploy

Host controller02

Hostname controller02

User cephde

Host controller03

Hostname controller03

User cephde

Host compute01

Hostname compute01

User cephde

Host compute02

Hostname compute02

User cephde

Host compute03

Hostname compute03

User cephde

5. 安装ceph-deploy

# 在规划的全部控制管理节点安装ceph-deploy工具,以controller01节点为例

[[email protected] ~]# yum install ceph-deploy -y

6. 创建ceph集群

1)创建集群

# 在cephde账户下操作,切忌使用sudo操作

# 在管理节点上生成一个目录用于存放集群相关配置文件;

[[email protected] ~]# su - cephde

[[email protected] ~]$ mkdir cephcluster

# 后续ceph-deploy相关操作全部在所创建的目录执行

# 将规划中的MON(monitor)节点纳入集群,即创建集群

[[email protected] ~]$ cd ~/cephcluster/

[[email protected] cephcluster]$ ceph-deploy new controller01 controller02 controller03

2)修改集群配置文件(optional)

# 生成集群后在集群目录下生成3个文件,其中ceph.conf即是配置文件;

# 默认可不修改,为使服务按规划启动,可做适当修改;

# 以下红色粗体部分是在默认生成的conf文件上新增的配置

[[email protected] cephcluster]$ cat ceph.conf

[global]

fsid = 9b606fef-1cde-4d4c-b269-90079d1d45dd

mon_initial_members = controller01, controller02, controller03

mon_host = 172.30.200.31,172.30.200.32,172.30.200.33

auth_cluster_required = cephx

auth_service_required = cephx

auth_client_required = cephx

# public network:前端mon网络,client访问网络;确保public network与mon_host在相同网段,否则初始化时可能会有错误;

# cluster network:后端osd心跳,数据/流复制恢复等网络

public network = 172.30.200.0/24

cluster network = 10.0.0.0/24

# 默认的副本数为3,实验环境变更为2

osd pool default size = 2

# 默认保护机制不允许删除pool,根据情况设置

mon_allow_pool_delete = true

7. 安装ceph

# 在全部控制管理与存储节点安装ceph;

# 理论上在控制节点的ceph集群目录使用ceph-deploy可统一安装,命令:ceph-deploy install controller01 controller02 controller03 compute01 compute02 compute03;

# 但由于网速原因大概率会失败,可在各存储节点独立安装ceph与ceph-radosgw,以controller01节点为例

[[email protected] ~]# yum install -y ceph ceph-radosgw

# 查看版本

[[email protected] ~]# ceph -v

8. 初始化ceph_mon

# 在控制管理节点初始化monitor

[[email protected] cephcluster]$ ceph-deploy mon create-initial

# 初始化完成后,在集群目录下新增多个秘钥文件

[[email protected] cephcluster]$ ls -l

# 查看状态

[[email protected] cephcluster]$ sudo systemctl status [email protected]

9. 分发ceph.conf与秘钥

# 分发ceph配置文件与秘钥到其他控制管理节点与存储节点;

# 注意分发节点本身也需要包含在内,默认没有秘钥文件,需要分发;

# 如果被分发节点已经配置文件(统一变更配置文件场景),可以使用如下命令:

ceph-deploy --overwrite-conf admin xxx

# 分发的配置文件与秘钥在各节点/etc/ceph/目录

[[email protected] cephcluster]$ ceph-deploy admin controller01 controller02 controller03 compute01 compute02 compute03

10. 安装ceph_mgr

1)安装mgr

# luminous版本必须安装mgr(dashboard)

[[email protected] cephcluster]$ ceph-deploy mgr create controller01:controller01_mgr controller02:controller02_mgr controller03:controller03_mgr

# 查看状态;

[[email protected] cephcluster]$ systemctl status [email protected]_mgr

[[email protected] cephcluster]$ sudo netstat -tunlp | grep mgr

2)启动mgr

# 可查看mgr默认开启的服务:(sudo) ceph mgr module ls;

# 默认dashboard服务在可开启列表中,但并未启动,需要手工开启

[[email protected] cephcluster]$ sudo ceph mgr module enable dashboard

# dashboard服务已开启,默认监听全部地址的tcp7000端口;

# 如果需要设置dashboard的监听地址与端口,如下:

# 设置监听地址:(sudo) ceph config-key put mgr/dashboard/server_addr x.x.x.x

# 设置监听端口:(sudo) ceph config-key put mgr/dashboard/server_port x

[[email protected] cephcluster]$ sudo netstat -tunlp | grep mgr

web登陆:http://172.30.200.31:7000/

11. 查看集群状态

# 查看monitor状态

[[email protected] cephcluster]$ sudo ceph mon stat

# 查看ceph状态:ceph health (detail),ceph -s,ceph -w等;

# 状态显示mgr处于active-standby模式

[[email protected] cephcluster]$ sudo ceph -s

de

# 可在各节点查看认证信息等

[[email protected] cephcluster]$ sudo ceph auth list

12. 创建osd(存储)

1)创建osd

# osd位于存储节点,可查看存储节点磁盘状况,以compute01节点为例

[[email protected] ~]# lsblk

# 实际创建osd时,可通过管理节点使用ceph-deploy创建;

# 本例中有3个osd节点,每个osd节点可运行4个osd进程(在6800~7300端口范围内,每进程监听1个本地端口)

[[email protected] cephcluster]$ ceph-deploy osd create compute01 --data /dev/sdb

[[email protected] cephcluster]$ ceph-deploy osd create compute01 --data /dev/sdc

[[email protected] cephcluster]$ ceph-deploy osd create compute01 --data /dev/sdd

[[email protected] cephcluster]$ ceph-deploy osd create compute01 --data /dev/sde

[[email protected] cephcluster]$ ceph-deploy osd create compute02 --data /dev/sdb

[[email protected] cephcluster]$ ceph-deploy osd create compute02 --data /dev/sdc

[[email protected] cephcluster]$ ceph-deploy osd create compute02 --data /dev/sdd

[[email protected] cephcluster]$ ceph-deploy osd create compute02 --data /dev/sde

[[email protected] cephcluster]$ ceph-deploy osd create compute03 --data /dev/sdb

[[email protected] cephcluster]$ ceph-deploy osd create compute03 --data /dev/sdc

[[email protected] cephcluster]$ ceph-deploy osd create compute03 --data /dev/sdd

[[email protected] cephcluster]$ ceph-deploy osd create compute03 --data /dev/sde

2)查看osd状态

# 在管理节点查看

[[email protected] cephcluster]$ ceph-deploy osd list compute01

# 在管理节点查看osd状态等

[[email protected] cephcluster]$ sudo ceph osd stat

[[email protected] cephcluster]$ sudo ceph osd tree

# 在管理节点查看容量及使用情况

[[email protected] cephcluster]$ sudo ceph df

# 在osd节点查看

[[email protected] ~]# lsblk

# ceph-osd进程,根据启动顺序,每个osd进程有特定的序号

[[email protected] ~]# systemctl status [email protected]

# osd进程端口号;

# 或:ps aux | grep osd | grep -v grep

[[email protected] ~]# netstat -tunlp | grep osd

或登陆mgr_dashboard:http://172.30.200.31:7000

原文地址:https://www.cnblogs.com/netonline/p/9367802.html

时间: 2024-11-05 13:48:56

高可用OpenStack(Queen版)集群-13.分布式存储Ceph的相关文章

Corosync+Pacemaker+DRBD+MySQL 实现高可用(HA)的MySQL集群

大纲一.前言二.环境准备三.Corosync 安装与配置四.Pacemaker 安装与配置五.DRBD 安装与配置六.MySQL 安装与配置七.crmsh 资源管理 推荐阅读: Linux 高可用(HA)集群基本概念详解 http://www.linuxidc.com/Linux/2013-08/88522.htm Linux 高可用(HA)集群之Heartbeat详解 http://www.linuxidc.com/Linux/2013-08/88521.htm 一.前言      前几篇博文

LVS+keeplived+nginx+tomcat高可用、高性能jsp集群

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://kerry.blog.51cto.com/172631/557749 #!/bin/bash # BY kerryhu # MAIL:[email protected] # BLOG:http://kerry.blog.51cto.com # Please manual operation yum of before Operation..... #yum -y install

Nginx+Keepalived搭建高可用负载平衡WEB 集群

Nginx+Keepalived搭建高可用负载平衡WEB 集群 1.1环境规划: Nginx_master:192.168.5.129 Nginx_backup:192.168.5.131 Tomcat:192.168.5.132 端口:8080,9080 操作系统:CentOS6.5 x86_64 内核版本:2.6.32-696.el6.x86_64 Nginx版本:nginx/1.12.0 nginx-1.12.0 Keepalived版本:Keepalived v1.2.13 前端双Ngi

haproxy+keepalived实现高可用负载均衡web集群

haproxy+keepalived实现高可用负载均衡web集群 负载均衡集群的概念 负载均衡是设计分布式系统架构必须要考虑的因素之一,它指的是通过调度分发的方式尽可能将"请求"."访问"的压力负载平均分摊到集群中的各个节点,避免有些节点负载太高导致访问延迟,而有些节点负载很小导致资源浪费.这样,每个节点都可以承担一定的访问请求负载压力,并且可以实现访问请求在各节点之间的动态分配,以实现负载均衡,从而为企业提供更高性能,更加稳定的系统架构解决方案. 高可用集群的概念

高可用(HA)集群的搭建 --图形化搭建(针对rhel6.5)

高可用(HA)集群的搭建 --图形化搭建(针对rhel6.5) 实验环境:iptables selinux关闭,三台主机做好解析 实验主机IP: 172.25.0.251 172.25.0.2 172.25.0.3 高可用集群包括RHCS,pacemaker+lvs,heartbeat,keepalievd. 在做实验前,先了解RHCS套件,6以下才有,7就取消了. 一些服务进程的含义如下: Luci/ricci>>web方式的集群管理(配置)工具: Ccs>>集群配置服务,(例如

keepalived+nginx实现高可用and负载均衡集群

keepalived+nginx实现高可用and负载均衡集群 前言 因生产环境需要,现需要搭建一个前端为nginx的HA双向互备.后端为nginx代理的loadbalance负载均衡集群.nginx进程基于于Master+Slave(worker)多进程模型,自身具有非常稳定的子进程管理功能.在Master进程分配模式下,Master进程永远不进行业务处理,只是进行任务分发,从而达到Master进程的存活高可靠性,Slave(worker)进程所有的业务信号都 由主进程发出,Slave(work

keepalived+nginx搭建高可用and负载均衡集群

keepalived+nginx搭建高可用and负载均衡集群 前言 因生产环境需要,现需要搭建一个前端为nginx的HA双向互备.后端为nginx代理的loadbalance负载均衡集群.nginx进程基于于Master+Slave(worker)多进程模型,自身具有非常稳定的子进程管理功能.在Master进程分配模式下,Master进程永远不进行业务处理,只是进行任务分发,从而达到Master进程的存活高可靠性,Slave(worker)进程所有的业务信号都由主进程发出,Slave(worke

Heartbeat+MySQL+NFS 实现高可用(HA)的MySQL集群

一:试验目的 利用heartbeat心跳机制haresource实现高可用(HA)mysql数据库的搭建. 二:试验拓扑图 三:安装前的环境准备 规划IP为192.168.1.14为node1;IP为192.168.1.2为node2 1)修改各主机名称 修改node1主机名称  vim /etc/sysconfig/network   NETWORKING=yes   HOSTNAME=node1 #修改主机名称为node1  vim /etc/hosts     192.168.1.2 no

高可用,完全分布式Hadoop集群HDFS和MapReduce安装配置指南

(WJW)高可用,完全分布式Hadoop集群HDFS和MapReduce安装配置指南 为了部署HA集群,应该准备以下事情: namenode服务器: 运行namenode的服务器应该有相同的硬件配置. journalnode服务器:运行的journalnode进程非常轻量,可以部署在其他的服务器上.注意:必须允许至少3个节点.当然可以运行更多,但是必须是奇数个,如3,5,7,9个等等.当运行N个节点时,系统可以容忍至少(N-1)/2个节点失败而不影响正常运行. 在HA集群中,standby状态的