ubuntu 16.04快速安装ceph集群
准备工作
假设集群: 选一台作管理机
注意: 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
安装用户
注意: 建议不要使用"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移除并妥善保管,以后可以用来维护集群.
更新源
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
安装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
安装过程
创建管理目录
root@test19:~# mkdir ceph-admin
root@test19:~# cd ceph-admin/
初始配置
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!
安装ceph
root@test19:~/ceph-admin# for node in 16 17 18 19 20 21 22; do ceph-deploy install test$node; done;
创建初始mon结点
root@test19:~/ceph-admin# ceph-deploy mon create-initial
创建激活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;
分发管理配置
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"选项!
- 测试集群是否安装成功
root@test19:~/ceph-admin# ceph -s root@test19:~/ceph-admin# ceph osd tree root@test19:~/ceph-admin# ceph osd perf
ubuntu 16.04快速安装ceph集群的更多相关文章
- Ubuntu 16.04下搭建kubernetes集群环境
简介 目前Kubernetes为Ubuntu提供的kube-up脚本,不支持15.10以及16.04这两个使用systemd作为init系统的版本. 这里详细介绍一下如何以非Docker方式在Ubun ...
- Ubuntu 18.04.5 LTS Ceph集群之 cephx 认证及使用普通用户挂载RBD和CephFS
1.cephx认证和授权 1.1 CephX认证机制 Ceph使用cephx协议对客户端进行身份认证: 1.每个MON都可以对客户端进行身份验正并分发密钥, 不存在单点故障和性能瓶颈 2. MON会返 ...
- Ubuntu 16.04下Redis Cluster集群搭建(官方原始方案)
前提:先安装好Redis,参考:http://www.cnblogs.com/EasonJim/p/7599941.html 说明:Redis Cluster集群模式可以做到动态增加节点和下线节点,使 ...
- Ubuntu 16.04 下Redis Cluster集群搭建
实际操作如下: 准备工作 版本:4.0.2 下载地址:https://redis.io/download 离线版本:(链接: https://pan.baidu.com/s/1bpwDtOr 密码: ...
- 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 ...
- Ternsorflow 学习:000-在 Ubuntu 16.04 上安装并使用 TensorFlow_v1.14 (改)
声明:本人已经对原文链接根据情况做出合理的改动. 本系列文章使用的是Tensorflow v1.14 引言 TensorFlow 是由谷歌构建的用于训练神经网络的开源机器学习软件.TensorFlow ...
- 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的一个分支首 ...
- Ubuntu 16.04 LTS安装 TeamViewer
Ubuntu 16.04 LTS安装 TeamViewer 64位Ubuntu 16.04系统需要添加32位架构支持,命令如下. sudo dpkg --add-architecture i3 ...
- Linux Ubuntu 16.04 初次安装使用总结zzz
装了两天的ubuntu系统终于算是勉强能用了,来来回回装了有三四次,期间出了各种各样的毛病.但是还是被我的Google大法给治好了.为了装这个系统,算是耗了两天的时间,啥事情都没干,干耗在这上面了.所 ...
随机推荐
- 在线算法与离线算法(online or offline)
1. 在线算法(online) PFC(prefix-free code)编码树的解码过程:可以在二进制编码串的接收过程中实时进行,而不必等到所有比特位都到达后才开始: 2. 离线算法(offline ...
- Html中CSS之去除li前面的小黑点,和ul、LI部分属性方法
对于很多人用div来做网站时,总会用到,但在显示效果时前面总是会有一个小黑点,这个令很多人头痛,但又找不到要源,其它我们可以用以下方法来清除.1.在CSS中写入代码.找到相关性的CSS,在..li和. ...
- Android MediaScanner使用简单介绍
1. 运行扫描 仅仅有系统开机的时候才会运行MediaScanner,其他情景下须要手动运行扫描(拍摄,下载等). 手动运行扫描的方法是发送MediaScanner广播: 1.1 扫描指定文件: In ...
- Spring之i18n配置与使用
Spring的i18n配置: <!-- conf:i18n --> <bean id="messageSource" class="org.spring ...
- iPad和iPhone开发的异同
niPad和iPhone开发的异同 niPad简介 n什么是iPad p一款苹果公司于2010年发布的平板电脑 p定位介于苹果的智能手机iPhone和笔记本电脑产品之间 p跟iPhone一样,搭载 ...
- 【codeforces 782A】Andryusha and Socks
[题目链接]:http://codeforces.com/contest/782/problem/A [题意] 如果手套没有成一双,那么其中的一只就会被放在桌子上; 问你桌子上手套的只数最多的时候有几 ...
- SpringBoot 打包成war包,部署到tomcat
使用maven创建的springboot项目,默认是jar包,springboot还有自己带的tomcat.现在需要将项目打包,并部署到服务器tomcat下面. 1.修改pom.xml文件.将jar修 ...
- iOS开发 - OC - block的详解 - 基础篇
深入理解oc中的block 苹果在Mac OS X10.6 和iOS 4之后引入了block语法.这一举动对于许多OC使用者的编码风格改变很大.就我本人而言,感觉block用起来还是很爽的,但一直以来 ...
- javascript学习-创建json对象数据,遍历
之前我已经有讲过后台返回json数据到前台,并在前台遍历json数据. 这里讲下直接在JS里创建JSON数据,然后遍历使用~ 创建代码例如以下:(创建的是JSON对象) var YearSelect ...
- git与svn的不同
假设你在读这篇文章,说明你跟大多数开发人员一样对GIT感兴趣,假设你还没有机会来试一试GIT,我想如今你就要了解它了. GIT不不过个版本号控制系统,它也是个内容管理系统(CMS),工作管理系统等.假 ...