ceph分布式存储部署

**

1.基础环境配置**

创建3个CentOS 7系统虚拟机(按具体情况),并修改hostname叫node1、node2和node3。
每个ceph节点需要有空闲的磁盘。我这边给每个节点挂载了50G的硬盘

[root@node1 ~]# lsblk
NAME   MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vda    253:0    0  20G  0 disk 
└─vda1 253:1    0  20G  0 part /
vdb    253:16   0  50G  0 disk
[root@node2 ~]# lsblk
NAME   MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vda    253:0    0  20G  0 disk 
└─vda1 253:1    0  20G  0 part /
vdb    253:16   0  50G  0 disk 
[root@node3 ~]# lsblk
NAME   MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vda    253:0    0  20G  0 disk 
└─vda1 253:1    0  20G  0 part /
vdb    253:16   0  50G  0 disk 


修改域名解析,将三个节点的ip添加到各个节点的/etc/hosts配置文件中

[root@node1 ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

10.0.0.9 node1
10.0.0.10 node2
10.0.0.11 node3

在node1上生成ssh,将它复制到node2,node3节点

# ssh-keygen 
# ssh-copy-id node2
# ssh-copy-id node3

关闭每个节点的防火墙和selinux

#systemctl stop firewalld
#systemctl disable firewalld
#setenforce 0    //临时关闭selinux

永久关闭将/etc/selinux/config中的SELINUX=enforcing改为SELINUX=disabled,然后重启

2.安装和配置Ceph

要部署这个集群,需要使用ceph-deploy工具在3台虚拟机上安装和配置Ceph。ceph-deploy是Ceph软件定义存储系统的一部分,用来方便地配置和管理Ceph存储集群。
(1)创建Ceph集群
首先,在ceph-node1上安装Ceph,并配置它为Ceph monitor和OSD节点。
① 在node1上安装ceph-deploy。

#yum install ceph-deploy -y

② 通过在node1上执行以下命令,用ceph-deploy创建一个Ceph集群

# mkdir /etc/ceph
# cd /etc/ceph
#ceph-deploy new node1

③ ceph-deploy的new子命令能够部署一个默认名称为Ceph的新集群,并且它能生成集群配置文件和密钥文件。列出当前的工作目录,可以查看到ceph.conf和ceph.mon.keying文件。

[root@node1 ceph]# ll
total 12
-rw-r--r-- 1 root root  223 Jan 10 20:26 ceph.conf
-rw-r--r-- 1 root root 2892 Jan 10 20:26 ceph.log
-rw------- 1 root root   73 Jan 10 20:26 ceph.mon.keyring

④ 在node1上执行以下命令,使用ceph-deploy工具在所有节点上安装Ceph二进制软件包。

# ceph-deploy install node1 node2 node3
# ceph  -v              //查看版本

⑥ 在node1上创建第一个Ceph monitor。

# ceph-deploy --overwrite-conf mon create-initial

⑦ Monitor创建成功后,检查集群的状态,这个时候Ceph集群并不处于健康状态。

[root@node1 ceph]# ceph -s
    cluster 2571d326-bd82-4497-9939-9dfd5741b108
     health HEALTH_ERR         //这里显示err 状态错误
     monmap e1: 1 mons at {node1=10.0.0.9:6789/0}
            election epoch 2, quorum 0 node1
     osdmap e13: 3 osds: 3 up, 3 in
      pgmap v20: 64 pgs, 1 pools, 0 bytes data, 0 objects
            15459 MB used, 134 GB / 149 GB avail
                  64 active+clean

2)创建OSD
① 列出node1上所有的可用磁盘。

[root@node1 ceph]# ceph-deploy disk list node1
[ceph_deploy.conf][DEBUG ] found configuration file at: /root/.cephdeploy.conf
[ceph_deploy.cli][INFO  ] Invoked (1.5.31): /usr/bin/ceph-deploy disk list node1
[ceph_deploy.cli][INFO  ] ceph-deploy options:
[ceph_deploy.cli][INFO  ]  username                      : None
[ceph_deploy.cli][INFO  ]  verbose                       : False
[ceph_deploy.cli][INFO  ]  overwrite_conf                : False
[ceph_deploy.cli][INFO  ]  subcommand                    : list
[ceph_deploy.cli][INFO  ]  quiet                         : False
[ceph_deploy.cli][INFO  ]  cd_conf                       : <ceph_deploy.conf.cephdeploy.Conf instance at 0x7f5b40a4c7a0>
[ceph_deploy.cli][INFO  ]  cluster                       : ceph
[ceph_deploy.cli][INFO  ]  func                          : <function disk at 0x7f5b40a42398>
[ceph_deploy.cli][INFO  ]  ceph_conf                     : None
[ceph_deploy.cli][INFO  ]  default_release               : False
[ceph_deploy.cli][INFO  ]  disk                          : [('node1', None, None)]
[node1][DEBUG ] connected to host: node1 
[node1][DEBUG ] detect platform information from remote host
[node1][DEBUG ] detect machine type
[node1][DEBUG ] find the location of an executable
[ceph_deploy.osd][INFO  ] Distro info: CentOS Linux 7.1.1503 Core
[ceph_deploy.osd][DEBUG ] Listing disks on node1...
[node1][DEBUG ] find the location of an executable
[node1][INFO  ] Running command: /usr/sbin/ceph-disk list
[node1][DEBUG ] /dev/vda :
[node1][DEBUG ]  /dev/vda1 other, xfs, mounted on /
[node1][DEBUG ] /dev/vdb :
[node1][DEBUG ]  /dev/vdb1 other, xfs, mounted on /opt/osd1

②  创建共享磁盘,3个节点都要执行。首先对系统上的空闲硬盘进行分区、格式化、挂载的操作。

# fdisk /dev/vdb      //输入n一直按回车,然后wq保存退出
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0x34447d2b.

Command (m for help): n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): 
Using default response p
Partition number (1-4, default 1): 
First sector (2048-104857599, default 2048): 
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-104857599, default 104857599): 
Using default value 104857599
Partition 1 of type Linux and of size 50 GiB is set
Command (m for help): wq
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

可以使用lsblk命令,查看分区情况

[root@node1 ceph]# lsblk
NAME   MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vda    253:0    0  20G  0 disk 
└─vda1 253:1    0  20G  0 part /
vdb    253:16   0  50G  0 disk 
└─vdb1 253:17   0  50G  0 part /opt/osd1

给分区格式化,每个节点都做

# mkfs.xfs /dev/vdb1

在node1创建一个目录叫/opt/osd1,挂载分区到目录,最后将该目录的权限提升到777。(node2和node3同理,分别创建/opt/osd2,/opt/osd3,挂载分区到目录,将权限提升777,这里只演示node1)

# mkdir /opt/osd1
# mount /dev/vdb1 /opt/osd1/
# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda1        20G  1.1G   19G   6% /
devtmpfs        984M     0  984M   0% /dev
tmpfs          1001M     0 1001M   0% /dev/shm
tmpfs          1001M   17M  985M   2% /run
tmpfs          1001M     0 1001M   0% /sys/fs/cgroup
/dev/vdb1        50G   33M   50G   1% /opt/osd1
# chmod 777 /opt/osd1/

③ 在node1节点使用ceph-deploy工具创建OSD节点。

# cd /etc/ceph/
# ceph-deploy osd prepare node1:/opt/osd1 node2:/opt/osd2 node3:/opt/osd3

④ 在node1节点使用ceph-deploy工具激活OSD节点。在激活OSD节点前,把创建的三个节点上的osd1、osd2、osd3目录中的文件权限改为777。(只演示node1)

[root@node1 ceph]# cd /opt/osd1/
[root@node1 osd1]# ll
total 16
-rw-r--r-- 1 root root   37 Jan 10 20:50 ceph_fsid
-rw-r--r-- 1 root root 2039 Jan 10 20:49 ceph.log
-rw-r--r-- 1 root root   37 Jan 10 20:50 fsid
-rw-r--r-- 1 root root   21 Jan 10 20:50 magic
[root@node1 osd1]# chmod 777 *
[root@node1 osd1]# ll
total 16
-rwxrwxrwx 1 root root   37 Jan 10 20:50 ceph_fsid
-rwxrwxrwx 1 root root 2039 Jan 10 20:49 ceph.log
-rwxrwxrwx 1 root root   37 Jan 10 20:50 fsid
-rwxrwxrwx 1 root root   21 Jan 10 20:50 magic

接下来开始激活osd节点

# cd /etc/ceph/
# ceph-deploy osd activate node1:/opt/osd1 node2:/opt/osd2 node3:/opt/osd3

⑤  检查Ceph集群的状态。此时,集群是HEALTH_OK状态。

[root@node1 ceph]# ceph -s
    cluster 2571d326-bd82-4497-9939-9dfd5741b108
     health HEALTH_OK
     monmap e1: 1 mons at {node1=10.0.0.9:6789/0}
            election epoch 2, quorum 0 node1
     osdmap e13: 3 osds: 3 up, 3 in
      pgmap v18: 64 pgs, 1 pools, 0 bytes data, 0 objects
            15459 MB used, 134 GB / 149 GB avail
                  64 active+clean

⑥ 开放权限给其他节点,进行灾备处理。

# ceph-deploy admin node{1,2,3}

(3)Ceph集群运维
有了可运行的Ceph集群后,现在可以用一些简单的命令来体验Ceph。
① 检查Ceph的安装状态。

# ceph status

② 观察集群的健康状况。

# ceph -w

③ 检查Ceph monitor仲裁状态。

# ceph quorum_status --format json-pretty

④ 导出Ceph monitor信息。

# ceph mon dump

⑤  检查集群使用状态。

# ceph df

⑥  检查Ceph Monitor、OSD和PG(配置组)状态。

# ceph mon stat
# ceph osd stat
# ceph pg stat

⑦ 列表PG。

# ceph pg dump

⑧ 列表Ceph存储池。

# ceph osd lspools

⑨ 检查OSD的CRUSH。

# ceph osd tree

⑩ 列表集群的认证密钥。

# ceph auth list
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值