热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

PB级分布式文件系统_SUSELinuxEnterpriseServer11搭建Ceph集群

作为分布式文件系统,其能够在维护POSIX兼容性的同时加入了复制和容错功能。从2010年3月底,您可以在Linux内核(从2.6.34版开始)中找到Ceph的身影,作为Linux的文件系统备选之一,Ceph.ko已经集成入Linux内核之中。

在SUSE Linux Enterprise Server 11 SP3上轻松搭建Ceph集群。

环境简介:

一个mon节点,一个mds节点,三个osd节点,分别如下

192.168.239.131      ceph-mon
192.168.239.132      ceph-mds

192.168.239.160      ceph-osd0
192.168.239.161      ceph-osd1
192.168.239.162      ceph-osd2

1、从suse.com官网注册一个账号,下载SLES 11 SP3和SUSE Cloud 4的ISO

2、给每个节点安装系统,然后设置两个安装源,一个OS,一个SUSE Cloud 4

3、配置ceph-mon到其他节点的root用户无密码登录ssh

4、复制ceph-mon节点的/etc/hosts到其他节点

5、安装ceph

zypper -n install ceph ceph-radosgw

6、在ceph-mon节点上,使用setup.sh分别调用init-mon.sh , init-osd.sh , init-mds.sh自动配置mon,osd,mds。

setup.sh和init-mon.sh会进入当前目录下的./ceph文件夹,请务必在/etc以外的目录执行。


各个脚本的代码如下(仅供参考):

(1) setup.sh

 #!/bin/bash
 
### Stop all existed OSD nodes
printf "Killing all ceph-osd nodes..."
for i in 0 1 2;do
    ssh ceph-osd$i "killall -TERM ceph-osd"
    sleep 1
done
printf "Done\n"
 
### Initialize mon on this system
killall -TERM ceph-mon
printf "Initializing ceph-mon on current node..."
./init-mon.sh
cd ./ceph
printf "Done\n"
 
### Initialize osd services on nodes
for i in 0 1 2;do
    ../init-osd.sh ceph-osd$i $i
    sleep 1
done
 
### Initialize mds on remote node
printf "Initializing mds on ceph-mds..."
../init-mds.sh ceph-mds
printf "Done\n"

(2) init-mon.sh

#!/bin/bash
 
fsid=$(uuidgen)
mon_node=$(hostname)
mon_ip=192.168.239.131
cluster_net=192.168.239.0/24
public_net=192.168.1.0/24
mon_data=/data/$mon_node
 
killall -TERM ceph-mon
 
rm -f /etc/ceph/ceph.conf /etc/ceph/*.keyring
rm -f /var/lib/ceph/bootstrap-mds/* /var/lib/ceph/bootstrap-osd/*
rm -f /var/log/ceph/*.log
 
cOnfdir=./ceph
rm -fr $confdir
mkdir -p $confdir
cd $confdir
 
rm -fr $mon_data
mkdir -p $mon_data
 
cat > ceph.conf < [global]
    fsid                =    $fsid
    mon initial members        =    $mon_node
    mon host            =    $mon_ip
    public network            =    $public_net
    cluster network            =    $cluster_net
    auth cluster required        =    cephx
    auth service required        =    cephx
    auth client required        =    cephx
    osd journal size        =    1024
    filestore xattr use omap    =    true
EOF
 
ceph-authtool --create-keyring bootstrap-osd.keyring --gen-key -n client.bootstrap-osd
ceph-authtool --create-keyring bootstrap-mds.keyring --gen-key -n client.bootstrap-mds
 
ceph-authtool --create-keyring ceph.mon.keyring --gen-key -n mon. --cap mon &#39;allow *&#39;
ceph-authtool --create-keyring ceph.client.admin.keyring --gen-key -n client.admin --set-uid=0 --cap mon &#39;allow *&#39; --cap osd &#39;allow *&#39; --cap mds &#39;allow&#39;
ceph-authtool ceph.mon.keyring --import-keyring ceph.client.admin.keyring
 
monmaptool --create --add $mon_node $mon_ip --fsid $(grep fsid ceph.conf | awk &#39;{ print $NF}&#39;) monmap
 
cp -a ceph.conf /etc/ceph
cp -a ceph.client.admin.keyring /etc/ceph
 
### Make filesystem for ceph-mon
ceph-mon --mkfs -i $mon_node --monmap monmap --keyring ceph.mon.keyring --mon-data $mon_data
 
### Start the ceph-mon service
ceph-mon -i $mon_node --mon-data $mon_data
 
### Initialize bootstrap keyrings
ceph auth add client.bootstrap-mds mon &#39;allow profile bootstrap-mds&#39; -i bootstrap-mds.keyring
ceph auth add client.bootstrap-osd mon &#39;allow profile bootstrap-osd&#39; -i bootstrap-osd.keyring


推荐阅读
  • systemd-nspawn可以创建最轻量级的容器(ns的意思就是namespace),本文的实验平台是Ubuntu16.04,x86_64机器。本文的目的是:在Ubuntu中用syst ... [详细]
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • 本文介绍了使用SSH免密登录的步骤,包括生成公私钥、传递公钥给被登录机、修改文件权限的操作。同时提醒用户注意私钥的传递方式,建议使用U盘等离线方式传递。 ... [详细]
  • 本文总结了Linux下多线程执行shell脚本的4种方法,包括切换到工作目录执行、使用绝对路径执行、直接使用bash或sh执行。同时介绍了为什么需要加上"./"来执行脚本的原因。 ... [详细]
  • Centos7搭建ELK(Elasticsearch、Logstash、Kibana)教程及注意事项
    本文介绍了在Centos7上搭建ELK(Elasticsearch、Logstash、Kibana)的详细步骤,包括下载安装包、安装Elasticsearch、创建用户、修改配置文件等。同时提供了使用华为镜像站下载安装包的方法,并强调了保证版本一致的重要性。 ... [详细]
  • 本文介绍了在RHEL 7中的系统日志管理和网络管理。系统日志管理包括rsyslog和systemd-journal两种日志服务,分别介绍了它们的特点、配置文件和日志查询方式。网络管理主要介绍了使用nmcli命令查看和配置网络接口的方法,包括查看网卡信息、添加、修改和删除配置文件等操作。 ... [详细]
  •     这里使用自己编译的hadoop-2.7.0版本部署在windows上,记得几年前,部署hadoop需要借助于cygwin,还需要开启ssh服务,最近发现,原来不需要借助cy ... [详细]
  • 大坑|左上角_pycharm连接服务器同步写代码(图文详细过程)
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了pycharm连接服务器同步写代码(图文详细过程)相关的知识,希望对你有一定的参考价值。pycharm连接服务 ... [详细]
  • linux 禁止指定ip访问
    linux中如何禁止指定的ip访问呢?比如被别人暴力破解,被别人使用不同的密码尝试登录:所以我想直接禁用这些ip的访问.怎么办呢?解决方案:修改配置文件etchosts.deny把 ... [详细]
  • Django + Ansible 主机管理(有源码)
    本文给大家介绍如何利用DjangoAnsible进行Web项目管理。Django介绍一个可以使Web开发工作愉快并且高效的Web开发框架,能够以最小的代价构建和维护高 ... [详细]
  • 现在比较流行使用静态网站生成器来搭建网站,博客产品着陆页微信转发页面等。但每次都需要对服务器进行配置,也是一个重复但繁琐的工作。使用DockerWeb,只需5分钟就能搭建一个基于D ... [详细]
  • DockerDataCenter系列(四)-离线安装UCP和DTR,Go语言社区,Golang程序员人脉社 ... [详细]
  • 在单位的一台4cpu的服务器上部署了esxserver,挂载了6个虚拟机,目前运行正常。在安装部署过程中,得到了cnvz.net论坛精华区 ... [详细]
  • Linux一键安装web环境全攻略
    摘自阿里云服务器官网,此处一键安装包下载:点此下载安装须知1、此安装包可在阿里云所有Linux系统上部署安装,此安装包包含的软件及版本为& ... [详细]
author-avatar
mobiledu2502860643
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有