01分布式存储Ceph理论篇,ceph分布式存储部署

**

1.基础环境配置**

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

[[email protected] ~]# lsblkNAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTvda253:0020G0 disk └─vda1 253:1020G0 part /vdb253:16 050G0 disk[[email protected] ~]# lsblkNAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTvda253:0020G0 disk └─vda1 253:1020G0 part /vdb253:16 050G0 disk [[email protected] ~]# lsblkNAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTvda253:0020G0 disk └─vda1 253:1020G0 part /vdb253:16 050G0 disk

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

[[email protected] ~]# cat /etc/hosts127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4::1 localhost localhost.localdomain localhost6 localhost6.localdomain610.0.0.9 node110.0.0.10 node210.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文件。

[[email protected] ceph]# lltotal 12-rw-r--r-- 1 root root223 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集群并不处于健康状态。

[[email protected] ceph]# ceph -scluster 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 inpgmap v20: 64 pgs, 1 pools, 0 bytes data, 0 objects15459 MB used, 134 GB / 149 GB avail64 active+clean

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

[[email protected] 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.cli][INFO]cluster : ceph[ceph_deploy.cli][INFO]func: [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 tableBuilding a new DOS disklabel with disk identifier 0x34447d2b.Command (m for help): nPartition type: p primary (0 primary, 0 extended, 4 free) e extendedSelect (default p): Using default response pPartition number (1-4, default 1): First sector (2048-104857599, default 2048): Using default value 2048Last sector, +sectors or +size{K,M,G} (2048-104857599, default 104857599): Using default value 104857599Partition 1 of type Linux and of size 50 GiB is setCommand (m for help): wqThe partition table has been altered!Calling ioctl() to re-read partition table.Syncing disks.

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

[[email protected] ceph]# lsblkNAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTvda253:0020G0 disk └─vda1 253:1020G0 part /vdb253:16 050G0 disk └─vdb1 253:17 050G0 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 -hFilesystemSizeUsed Avail Use% Mounted on/dev/vda120G1.1G 19G 6% /devtmpfs984M 0984M 0% /devtmpfs1001M 0 1001M 0% /dev/shmtmpfs1001M 17M985M 2% /runtmpfs1001M 0 1001M 0% /sys/fs/cgroup/dev/vdb150G 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)

[[email protected] ceph]# cd /opt/osd1/[[email protected] osd1]# lltotal 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[[email protected] osd1]# chmod 777 *[[email protected] osd1]# lltotal 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状态。

[[email protected] ceph]# ceph -scluster 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 inpgmap v18: 64 pgs, 1 pools, 0 bytes data, 0 objects15459 MB used, 134 GB / 149 GB avail64 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
0318爱情意思023落落清欢txt01氧氟沙星一次吃几粒056宣布05皮带秤校准规程doc02国家队动画24集全集03383港股079离婚三爷的红颜知己汽车业界第一的混合动力总成本田第三代immd详细解析065各国反应与系统更新第九更求订阅01医师实践技能考试临床类病例分析题四0820星座0820是什么意思数码宝贝城户丈小说城户丈047飞机0828农业工程0721傅应星正告韦宝03岁儿童保健与营养06月21日0530无操作