1.安装文档
192.168.244.120 ceph1
192.168.244.110 ceph2
192.168.244.130 ceph3
cd /etc/yum.repos.d
mv ./CentOS-Base.repo ./CentOS-Base.repo.bak
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
yum clean all
yum makecache
systemctl stop firewalld.service
systemctl disable firewalld.service
firewall-cmd --state
sed -i
'/^SELINUX=.*/c SELINUX=disabled' /etc/selinux/config
sed -i
's/^SELINUXTYPE=.*/SELINUXTYPE=disabled/g' /etc/selinux/config
grep --color
=auto
'^SELINUX' /etc/selinux/config
setenforce 0
getenforce
sudo useradd -d /home/ceph-admin -m ceph-admin
sudo passwd ceph-admin
echo "ceph-admin ALL = (root) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/ceph-admin
sudo chmod 0440 /etc/sudoers.d/ceph-admin
su ceph-admin
yum
install -y ntp ntpdate
sudo vi /etc/ntp.conf
restrict 192.168.244.0 mask 255.255.255.0 nomodify notrap
server 192.168.244.110 perfer
restrict 192.168.244.110 nomodify notrap noquery
restrict 192.168.244.120
restrict 192.168.244.130
server 127.127.1.0
fudge 127.127.1.0 stratum 10
注释掉server 0.centos.pool.ntp.org iburst 这4行
server 192.168.244.110
restrict 192.168.244.110 nomodify notrap noquery
restrict 192.168.244.110
server 127.127.1.0
fudge 127.127.1.0 stratum 10
sudo service ntpd restart
sudo systemctl
enable ntpd
ssh-keygen
vi .ssh/config
Host ceph1
Hostname ceph1
User ceph-admin
Host ceph2
Hostname ceph2
User ceph-admin
Host ceph3
Hostname ceph3
User ceph-admin
sudo chmod 600 config
ssh-copy-id ceph-admin@ceph20
ssh-copy-id ceph-admin@ceph30
sed -i
's/Default requiretty/#Default requiretty/' /etc/sudoers
或者在某些发行版(如 CentOS )上,执行 ceph-deploy 命令时,如果你的 Ceph 节点默认设置了
requiretty 那就会遇到报错。可以这样禁用此功能:执行
sudo visudo ,找到 Defaults requiretty 选项,
把它改为 Defaults:ceph
!requiretty ,这样 ceph-deploy 就能用 ceph 用户登录并使用
sudo 了。
su
vi /etc/yum.repos.d/ceph.repo
[ceph
]
name
=ceph
baseurl
=http://mirrors.aliyun.com/ceph/rpm-mimic/el7/x86_64/
gpgcheck
=0
priority
=1
[ceph-noarch
]
name
=cephnoarch
baseurl
=http://mirrors.aliyun.com/ceph/rpm-mimic/el7/noarch/
gpgcheck
=0
priority
=1
[ceph-source
]
name
=Ceph
source packages
baseurl
=https://mirrors.aliyun.com/ceph/rpm-mimic/el7/SRPMS
enabled
=0
gpgcheck
=1
type
=rpm-md
gpgkey
=https://mirrors.aliyun.com/ceph/keys/release.asc
priority
=1
yum
install -y ceph
ceph -v
yum
install -y ceph-deploy
su ceph-admin
mkdir ceph-cluster
cd ceph-cluster
ceph-deploy new ceph1
ls
vi ceph.conf
加入
public network
= 192.168.244.0/24
[global
]
mon_allow_pool_delete
= true
ceph-deploy mon create-initial
ceph-deploy --overwrite-conf mon create-initial
sudo ceph-deploy mon add ceph2
sudo ceph-deploy mon add ceph3
sudo ceph-deploy admin ceph1 ceph2 ceph3
sudo chmod +r /etc/ceph/ceph.client.admin.keyring
sudo ceph-deploy mgr create ceph1 ceph2 ceph3
sudo ceph-deploy disk zap ceph1 /dev/sdb
sudo ceph-deploy disk zap ceph2 /dev/sdb
sudo ceph-deploy disk zap ceph3 /dev/sdb
ceph-deploy osd create --data /dev/sdc ceph1
ceph-deploy osd create --data /dev/sdb ceph2
ceph-deploy osd create --data /dev/sdb ceph3
ceph osd crush class
ls
for i
in {0
..10
} ; do ceph osd crush rm-device-class osd.
$i;done
for i
in {0
..9
} ;do ceph osd crush set-device-class hdd osd.
$i;done
ceph osd tree
ceph osd crush class
ls
for i
in 10 11 12
;do ceph osd crush set-device-class ssd osd.
$i;done
ceph osd tree
ceph osd crush class
ls
少于5个OSD设置pg_num为128
5到10个OSD设置pg_num为512
10到50个OSD设置pg_num为1024
ceph osd crush rule create-replicated rule-ssd default host ssd
ceph osd crush rule create-replicated rule-hdd default host hdd
ceph osd crush rule
ls
ceph osd pool create cache 64 64 rule-ssd
ceph osd pool create hddpool 128 128 rule-hdd
ceph osd tier add hddpool cache
ceph osd tier cache-mode cache writeback
ceph osd tier set-overlay hddpool cache
ceph osd pool
set cache hit_set_type bloom
ceph osd pool
set cache target_max_bytes 1099511627776
ceph osd pool
set cache target_max_objects 10000000
ceph osd pool
set cache cache_min_flush_age 600
ceph osd pool
set cache cache_min_evict_age 600
ceph osd pool
set cache cache_target_full_ratio 0.8
sudo ceph-deploy
install --rgw ceph1 ceph2 ceph3
ceph-deploy rgw create ceph1 ceph2 ceph3
curl http://ceph1:7480
sudo radosgw-admin user create --uid
="testuser" --display-name
="testuser"
"access_key": "KDAGRZU8SNPYTJULLY9O",
"secret_key": "YnQdNRCM5EkNazhDN2Aj7L15hySWftEK85OgYygP"
sudo yum
install python-boto
sudo yum
install s3cmd
s3cmd --configure
根据提示输入accessKey,securityKey 生成基本的配置文件。
修改host_base/host_bucket:
host_base
= 192.168.244.101:7480
host_bucket
= 192.168.244.101:7480/%
(bucket
)s
ceph osd pool create data 128
ceph osd lspools
ceph osd pool set-quota test-pool max_objects 100
ceph osd pool set-quota test-pool max_bytes
$((10 * 1024 * 1024 * 1024))
ceph osd poolrename test-pool test-pool-new
sudo yum
install python-ceph
sudo yum
install jna
git clone --recursive https://github.com/ceph/rados-java.git
cd rados-java-master
mvn
install -Dmaven.test.skip
=true
sudo cp target/rados-0.6.0.jar /usr/share/java/rados-0.6.0.jar
sudo ln -s /usr/share/java/jna.jar /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.242.b08-0.el7_7.x86_64/jre/lib/ext/jna.jar
sudo ln -s /usr/share/java/rados-0.6.0.jar /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.242.b08-1.el7.x86_64/jre/lib/ext/rados-0.6.0.jar
yum
install librados2-0.94.5-1.el7.x86_64.rpm librados2-devel-0.94.5-1.el7.x86_64.rpm -y
yum
install librbd1-0.94.5-1.el7.x86_64.rpm librbd1-devel-0.94.5-1.el7.x86_64.rpm -y
yum
install java-devel
ceph-deploy mds create ceph1
ceph
df
ceph osd pool create cephfs_data 128
ceph osd pool create cephfs_metadata 128
ceph fs new cephfs cephfs_metadata cephfs_data
ceph
df
su - ceph-admin
sudo yum
install -y ceph-fuse
mkdir ~/cephfs
sudo ceph-fuse -m ceph2:6789 ~/cephfs/
df -h ~/cephfs/
ceph auth get-or-create mgr.docker-node1 mon
'allow profile mgr' osd
'allow *' mds
'allow *'
ceph-mgr -i master
ceph mgr module
enable dashboard
ceph config-key
set mgr/dashboard/master/server_addr 10.3.1.11
ceph config-key put mgr/dashboard/server_port 7000
ceph mgr module disable dashboard
ceph mgr module
enable dashboard
安装完成后即可测试ceph,参考我的博客 测试和使用ceph ceph存储接口讲解
2.安装常见问题
2.1 安装ceph的osd时,运行清空磁盘命令
ceph-deploy disk zap node3-ceph /dev/sdb 如果报错磁盘忙无法清除之类的
[WARNIN
] stderr: wipefs: error: /dev/sdb: probing initialization failed: Device or resource busy
[ceph3
][WARNIN
] --
> failed to wipefs device, will try again to workaround probable race condition
手动进行dd命令清空磁盘并重启 sudo dd if=/dev/zero of=/dev/sdb bs=512K count=1 reboot 重启完成后,再进入ceph-admin的主机进行ceph-deploy disk zap node3-ceph /dev/sdb 就能够清理磁盘
2.2 报错has no attribute ‘needs_ssh’,如图
原因是:remoto包需要升级 解决方式: 在root账户下: 1)安装python2-pip包:yum install python2-pip -y 2)升级remoto:pip install --upgrade remoto
2.3 ceph pool里对象无法查看,运行代码到 连接cluster后卡住
原因:一些ceph进程挂了,要重启mon
systemctl
{ start
| stop
| restart
} ceph-mon.target
https://blog.51cto.com/11495268/2339451
pool 里的pg出问题
大多数是两种情况导致的,一是有节点没开机,或者其mon进程挂了,解决办法是重启mon服务;另一种是硬盘少而副本多,这时候应该增加硬盘.