准备工作

  1. 假设集群: 选一台作管理机

    注意: ceph集群引用hostname,而非ip.

    172.17.4.16 test16 #hostname必须是test16
    172.17.4.17 test17 #hostname必须是test17
    172.17.4.18 test18 #hostname必须是test18
    172.17.4.19 test19 #hostname必须是test19, 选作管理机
    172.17.4.20 test20 #hostname必须是test20
    172.17.4.21 test21 #hostname必须是test21
    172.17.4.22 test22 #hostname必须是test22
  2. 安装用户

    注意: 建议不要使用"ceph",因为"apt install ceph"需要使用ceph. 用root最省事 _

    root@test19:~# ssh-keygen #创建安装用rsa,安装完记得删除
    
    root@test19:~# less .ssh/id_rsa.pub
    ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDZAQ8ikono13kGzRLpyx1BCRfzICieEKg27WABW+2eFkYXmbvzLSu8XkmC3a0x7M0ADd2aW2FGv8ZtxPgHMRFzyaeoXwGZUFU5zmd9CASglHibKlWzdUgl5sW/DSdSxFYs+ooQvZcKSMmbFYlo70Ndv5kHja2FEMKnLexJpox4fFb9Rv1KEez0p1j28iICc3nHXLAZigezKkaFiv/Wfk/g59nk6ZCNAr1UnDvTdQOnVTIu6Q6UkpoiDx3+R5oeWRynI2l6T/bhrMpubO5PaluFKvas0DF3eGZLf2XQPR8sYzt7PkOGC1QANi7D11UxTqurZF8Meb0LdH0KEqE1kH7z root@cadmin # 在各台机执行,authorized_keys必须是600
    mkdir /root/.ssh
    echo -n 'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDZAQ8ikono13kGzRLpyx1BCRfzICieEKg27WABW+2eFkYXmbvzLSu8XkmC3a0x7M0ADd2aW2FGv8ZtxPgHMRFzyaeoXwGZUFU5zmd9CASglHibKlWzdUgl5sW/DSdSxFYs+ooQvZcKSMmbFYlo70Ndv5kHja2FEMKnLexJpox4fFb9Rv1KEez0p1j28iICc3nHXLAZigezKkaFiv/Wfk/g59nk6ZCNAr1UnDvTdQOnVTIu6Q6UkpoiDx3+R5oeWRynI2l6T/bhrMpubO5PaluFKvas0DF3eGZLf2XQPR8sYzt7PkOGC1QANi7D11UxTqurZF8Meb0LdH0KEqE1kH7z' > /root/.ssh/authorized_keys && chmod 600 /root/.ssh/authorized_keys

测试用户

```

#在test19无密ssh

for node in 16 17 18 19 20 21 22; do

ssh test$node echo 123;

done;

    #确认yes
The authenticity of host 'test22 (172.17.4.22)' can't be established.
ECDSA key fingerprint is SHA256:6S9mp0m8bV15bKX9RugP2CflINUvxORw82yCwJqVyrE.
Are you sure you want to continue connecting (yes/no)? yes ```
完成后记得将/root/.ssh/id_rsa从test19移除并妥善保管,以后可以用来维护集群.
  1. 更新源

    root@test19: for node in 16 17 18 19 20 21 22; do
    ssh test$node \
    wget -q -O- https://download.ceph.com/keys/release.asc | sudo apt-key add -;\
    echo deb https://download.ceph.com/debian-jewel/ $(lsb_release -sc) main | sudo tee /etc/apt/sources.list.d/ceph.list;\
    apt update && apt -y dist-upgrade && apt -y autoremove;
    done #apt使用-y默认Yes
  2. 安装ceph-deploy

    root@test19: apt install ceph-deploy

    注意: 16.04下这二个版本都有bug.

    • 1.5.32在执行ceph-deploy mon create-initial命令后生成的ceph.client.admin.keyring文件是空的!
    • 1.5.34则在重装时不会替换/var/lib/ceph/bootstrap-osd/ceph.keyring, 造成ceph-deploy osd activate失败.
    root@test19:~# apt-cache policy ceph-deploy
    ceph-deploy:
    Installed: 1.5.34
    Candidate: 1.5.34
    Version table:
    *** 1.5.34 999
    999 https://download.ceph.com/debian-jewel xenial/main amd64 Packages
    999 https://download.ceph.com/debian-jewel xenial/main i386 Packages
    100 /var/lib/dpkg/status
    1.5.32-0ubuntu1 500
    500 http://hk.archive.ubuntu.com/ubuntu xenial/universe amd64 Packages
    500 http://hk.archive.ubuntu.com/ubuntu xenial/universe i386 Packages

安装过程

参考: INSTALLATION (QUICK)

  1. 创建管理目录

    root@test19:~# mkdir ceph-admin
    root@test19:~# cd ceph-admin/
  2. 初始配置

    root@test19:~/ceph-admin# ceph-deploy new test16 test17
    
    drwxr-xr-x 2 root root 4096 Sep 14 10:28 ./
    drwx------ 6 root root 4096 Sep 14 10:28 ../
    -rw-r--r-- 1 root root 215 Sep 14 10:28 ceph.conf
    -rw-r--r-- 1 root root 4080 Sep 14 10:28 ceph-deploy-ceph.log
    -rw------- 1 root root 73 Sep 14 10:28 ceph.mon.keyring root@test19:~/ceph-admin# vi ceph.conf
    [global]
    fsid = c96ee478-4df7-4100-9792-c078cf44b3c4
    mon_initial_members = test16, test17
    mon_host = 172.17.4.16,172.17.4.17
    auth_cluster_required = cephx
    auth_service_required = cephx
    auth_client_required = cephx public_network = 172.17.4.0/24
    cluster_network = 172.17.4.0/24
    # 以下是针对ext4的bug
    osd_max_object_name_len = 256
    osd_max_object_namespace_len = 64
    osd_check_max_object_name_len_on_startup = false

    需要注意: jewel 10.2.1对EXT4格式有个文件名长度BUG!

  3. 安装ceph

     root@test19:~/ceph-admin# for node in 16 17 18 19 20 21 22; do ceph-deploy install test$node; done;
  4. 创建初始mon结点

    root@test19:~/ceph-admin# ceph-deploy mon create-initial
  5. 创建激活osd结点, 去掉16,17

    root@test19:~/ceph-admin# for node in 18 19 20 21 22; do ssh  test$node 'mkdir -R /data/ceph/osd; chown ceph:ceph -R /data/ceph; rm -rf /data/ceph/osd/*'; ceph-deploy osd prepare test$node:/data/ceph/osd; ceph-deploy osd activate test$node:/data/ceph/osd; done;
  6. 分发管理配置

    root@test19:~/ceph-admin# for node in 16 17 18 19 20 21 22; do ceph-deploy admin test$node; ssh test$node 'chmod a+r /etc/ceph/ceph.client.admin.keyring'; done;

如果上述步骤需要重试,可以执行下述清理:

root@test19:~/ceph-admin# ceph-deploy purgedata test16 test17 test18 test19 test20 test21 test22 root@test19:~/ceph-admin# ceph-deploy forgetkeys root@test19:~/ceph-admin# for node in 16 17 18 19 20 21 22; do ssh test$node rm -rf /data/ceph/osd/*; done;

另外, 重试命令需要带上"--overwrite-conf"选项!

  1. 测试集群是否安装成功
    root@test19:~/ceph-admin# ceph -s
    
    root@test19:~/ceph-admin# ceph osd tree
    
    root@test19:~/ceph-admin# ceph osd perf
    
    

ubuntu 16.04快速安装ceph集群的更多相关文章

  1. Ubuntu 16.04下搭建kubernetes集群环境

    简介 目前Kubernetes为Ubuntu提供的kube-up脚本,不支持15.10以及16.04这两个使用systemd作为init系统的版本. 这里详细介绍一下如何以非Docker方式在Ubun ...

  2. Ubuntu 18.04.5 LTS Ceph集群之 cephx 认证及使用普通用户挂载RBD和CephFS

    1.cephx认证和授权 1.1 CephX认证机制 Ceph使用cephx协议对客户端进行身份认证: 1.每个MON都可以对客户端进行身份验正并分发密钥, 不存在单点故障和性能瓶颈 2. MON会返 ...

  3. Ubuntu 16.04下Redis Cluster集群搭建(官方原始方案)

    前提:先安装好Redis,参考:http://www.cnblogs.com/EasonJim/p/7599941.html 说明:Redis Cluster集群模式可以做到动态增加节点和下线节点,使 ...

  4. Ubuntu 16.04 下Redis Cluster集群搭建

    实际操作如下: 准备工作 版本:4.0.2 下载地址:https://redis.io/download 离线版本:(链接: https://pan.baidu.com/s/1bpwDtOr 密码: ...

  5. PHP7 学习笔记(一)Ubuntu 16.04 编译安装Nginx-1.10.3、 PHP7.0.9、Redis3.0 扩展、Phalcon3.1 扩展、Swoole1.9.8 扩展、ssh2扩展(全程编译安装)

    ==================== PHP 7.0 编译安装================== wget http://cn2.php.net/get/php-7.0.9.tar.bz2/fr ...

  6. Ternsorflow 学习:000-在 Ubuntu 16.04 上安装并使用 TensorFlow_v1.14 (改)

    声明:本人已经对原文链接根据情况做出合理的改动. 本系列文章使用的是Tensorflow v1.14 引言 TensorFlow 是由谷歌构建的用于训练神经网络的开源机器学习软件.TensorFlow ...

  7. Ubuntu 16.04 LTS 安装 Nginx/PHP 5.6/MySQL 5.7 (LNMP) 与Laravel

    Ubuntu 16.04 LTS 安装 Nginx/PHP 5.6/MySQL 5.7 (LNMP) 与Laravel 1.MySQL安装[安装 MariaDB]MariaDB是MySQL的一个分支首 ...

  8. Ubuntu 16.04 LTS安装 TeamViewer

    Ubuntu 16.04 LTS安装 TeamViewer     64位Ubuntu 16.04系统需要添加32位架构支持,命令如下. sudo dpkg --add-architecture i3 ...

  9. Linux Ubuntu 16.04 初次安装使用总结zzz

    装了两天的ubuntu系统终于算是勉强能用了,来来回回装了有三四次,期间出了各种各样的毛病.但是还是被我的Google大法给治好了.为了装这个系统,算是耗了两天的时间,啥事情都没干,干耗在这上面了.所 ...

随机推荐

  1. 驱动程序调试方法之printk——printk的原理与直接使用

    1.基本原理 (1)在UBOOT里设置console=ttySAC0或者console=tty1 这里是设置控制终端,tySAC0 表示串口, tty1 表示lcd(2)内核用printk打印 内核就 ...

  2. 【C++竞赛 F】yyy的三角形

    时间限制:2s 内存限制:32MB 问题描述 yyy对三角形非常感兴趣,他有n个木棍,他正在用这些木棍组成三角形.这时xxx拿了两根木棍过来,xxx希望yyy能给他一根木棍,使得xxx可以组成一个三角 ...

  3. 【32.89%】【codeforces 719A】Vitya in the Countryside

    time limit per test 1 second memory limit per test 256 megabytes input standard input output standar ...

  4. 利用spingmvc及servlet实现对url的地址去除后缀,更改后缀为html

    效果图 1.在web.xml中加上如下配置.其实就是利用servlet的目录过滤,这样所有带有news的地址都会被拦截 <!-- restfull风格约定,去除前台超链接访问的后缀 --> ...

  5. 学习鸟哥的Linux私房菜笔记(6)——过滤器、输入输出及管道

    一.过滤器 Linux中的应用工具分为三种: 交互工具 过滤器 编辑器 能够接受数据,过滤再输出的工具,称之为过滤器 对过滤器和进程,存在着输入源与输出对象 二.输入.输出.重定向 输入:过滤器的数据 ...

  6. Python 工具类与工具函数 —— pair

    def pair(lis): n = len(lis) for i in range(n): for j in range(i+1, n): yield lis[i], lis[j] 这样在调用端,访 ...

  7. 使用Opencv中均值漂移meanShift跟踪移动目标

    Mean Shift均值漂移算法是无参密度估计理论的一种,无参密度估计不需要事先知道对象的任何先验知识,完全依靠训练数据进行估计,并且可以用于任意形状的密度估计,在某一连续点处的密度函数值可由该点邻域 ...

  8. 【codeforces 787B】Not Afraid

    [题目链接]:http://codeforces.com/contest/787/problem/B [题意] -水题..题目太吓人 [题解] 只要你在一组里面找到两个数字,它们的绝对值相同,但是正负 ...

  9. Linux input

    Linux input 输入设备都有共性:中断驱动+字符IO,基于分层的思想,Linux内核将这些设备的公有的部分提取出来,基于cdev提供接口,设计了输入子系统,所有使用输入子系统构建的设备都使用主 ...

  10. 解决android模拟器无法上网问题

    1.  将 android的tool增加到,windows 环境变量 path中, D:\Android\android-sdk_r3-windows\android-sdk-windows\tool ...