Ceph集群部署

      網友投稿 947 2025-03-31

      一 概述

      1.1 背景

      近期進行公司業務容器化改造,在為kubernetes提供存儲選型方面,在選型中本地存儲不可跨node,NFS共享存儲不好做高可用,因此選型Ceph來為k8s提供存儲類。特此筆記以備后用。

      1.2 概述

      Ceph集群部署

      Ceph是一種為優秀的性能、可靠性和可擴展性而設計的統一的、分布式文件系統。Ceph是一個開源的分布式文件系統。因為它還支持塊存儲、對象存儲,所以很自然的被用做云計算框架openstack或cloudstack整個存儲后端。當然也可以單獨作為存儲,例如部署一套集群作為對象存儲、SAN存儲、NAS存儲等。可以作為k8s的存儲類,來方便容器持久化存儲。

      1.3 支持格式

      對象存儲:即radosgw,兼容S3接口。通過rest api上傳、下載文件。

      文件系統:posix接口。可以將ceph集群看做一個共享文件系統掛載到本地。

      塊存儲:即rbd。有kernel rbd和librbd兩種使用方式。支持快照、克隆。相當于一塊硬盤掛到本地,用法和用途和硬盤一樣。比如在OpenStack項目里,Ceph的塊設備存儲可以對接OpenStack的后端存儲

      1.4 優勢

      統一存儲:雖然ceph底層是一個分布式文件系統,但由于在上層開發了支持對象和塊的接口

      高擴展性:擴容方便、容量大。能夠管理上千臺服務器、EB級的容量。

      高可靠性:支持多份強一致性副本,EC。副本能夠垮主機、機架、機房、數據中心存放。所以安全可靠。存儲節點可以自管理、自動修復。無單點故障,容錯性強。

      高性能:因為是多個副本,因此在讀寫操作時候能夠做到高度并行化。理論上,節點越多,整個集群的IOPS和吞吐量越高。另外一點ceph客戶端讀寫數據直接與存儲設備(osd) 交互。

      1.5 核心組件

      Ceph OSDs:Ceph OSD 守護進程( Ceph OSD )的功能是存儲數據,處理數據的復制、恢復、回填、再均衡,并通過檢查其他OSD 守護進程的心跳來向 Ceph Monitors 提供一些監控信息。當 Ceph 存儲集群設定為有2個副本時,至少需要2個 OSD 守護進程,集群才能達到 active+clean 狀態( Ceph 默認有3個副本,但你可以調整副本數)。

      Monitors: ?Ceph Monitor維護著展示集群狀態的各種圖表,包括監視器圖、 OSD 圖、歸置組( PG )圖、和 CRUSH 圖。 Ceph 保存著發生在Monitors 、 OSD 和 PG上的每一次狀態變更的歷史信息(稱為 epoch )。

      MDSs: ?Ceph 元數據服務器( MDS )為 Ceph 文件系統存儲元數據(也就是說,Ceph 塊設備和 Ceph 對象存儲不使用MDS )。元數據服務器使得 POSIX 文件系統的用戶們,可以在不對 Ceph 存儲集群造成負擔的前提下,執行諸如 ls、find 等基本命令。

      二 安裝部署

      2.1 主機信息

      2.2 磁盤準備

      需要在三臺主機創建磁盤,并掛載到主機的/var/local/osd{0,1,2}

      [root@master?~]#?mkfs.xfs?/dev/vdc?[root@master?~]#?mkdir?-p?/var/local/osd0?[root@master?~]#?mount?/dev/vdc?/var/local/osd0/?[root@node01?~]#?mkfs.xfs?/dev/vdc?[root@node01?~]#?mkdir?-p?/var/local/osd1?[root@node01?~]#?mount?/dev/vdc?/var/local/osd1/?[root@node02?~]#?mkfs.xfs?/dev/vdc??[root@node02?~]#?mkdir?-p?/var/local/osd2?[root@node02?~]#?mount?/dev/vdc?/var/local/osd2/?將磁盤添加進入fstab中,確保開機自動掛載?復制代碼

      2.3 配置各主機hosts文件

      127.0.0.1???localhost?localhost.localdomain?localhost4?localhost4.localdomain4?::1?????????localhost?localhost.localdomain?localhost6?localhost6.localdomain6?172.16.60.2?master?172.16.60.3?node01?172.16.60.4?node02?復制代碼

      2.4 管理節點ssh免密鑰登錄node1/node2

      [root@master?~]#?ssh-keygen?-t?rsa?[root@master?~]#?ssh-copy-id?-i?/root/.ssh/id_rsa.pub?root@node01?[root@master?~]#?ssh-copy-id?-i?/root/.ssh/id_rsa.pub?root@node02?復制代碼

      2.5 master節點安裝ceph-deploy工具

      #?各節點均更新ceph的yum源?vim?/etc/yum.repos.d/ceph.repo??[ceph]?name=ceph?baseurl=http://mirrors.aliyun.com/ceph/rpm-jewel/el7/x86_64/?gpgcheck=0?priority?=1?[ceph-noarch]?name=cephnoarch?baseurl=http://mirrors.aliyun.com/ceph/rpm-jewel/el7/noarch/?gpgcheck=0?priority?=1?[ceph-source]?name=Ceph?source?packages?baseurl=http://mirrors.aliyun.com/ceph/rpm-jewel/el7/SRPMS?gpgcheck=0?priority=1??#?安裝ceph-deploy工具?yum?clean?all?&&?yum?makecache?yum?-y?install?ceph-deploy?復制代碼

      2.6 創建monitor服務

      創建monitor服務,指定master節點的hostname

      [root@master?~]#?mkdir?/etc/ceph?&&?cd?/etc/ceph?[root@master?ceph]#?ceph-deploy?new?master?[root@master?ceph]#?ll?total?12?-rw-r--r--?1?root?root??195?Sep??3?10:56?ceph.conf?-rw-r--r--?1?root?root?2915?Sep??3?10:56?ceph-deploy-ceph.log?-rw-------?1?root?root???73?Sep??3?10:56?ceph.mon.keyring?[root@master?ceph]#?cat?ceph.conf??[global]?fsid?=?5b9eb8d2-1c12-4f6d-ae9c-85078795794b?mon_initial_members?=?master?mon_host?=?172.16.60.2?auth_cluster_required?=?cephx?auth_service_required?=?cephx?auth_client_required?=?cephx?osd_pool_default_size?=?2?配置文件的默認副本數從3改成2,這樣只有兩個osd也能達到active+clean狀態,把下面這行加入到[global]段(可選配置)?復制代碼

      2.7 所有節點安裝ceph

      #?各節點安裝軟件包?yum?-y?install?yum-plugin-priorities?epel-release?#?master節點利用ceph-deply?部署ceph?[root@master?ceph]#?ceph-deploy?install?master?node01?node02?[root@master?ceph]#?ceph?--version?ceph?version?10.2.11?(e4b061b47f07f583c92a050d9e84b1813a35671e)?復制代碼

      2.8 部署相關服務

      #?安裝ceph?monitor?[root@master?ceph]#?ceph-deploy?mon?create?master??#?收集節點的keyring文件?[root@master?ceph]#?ceph-deploy??gatherkeys?master??#?創建osd?[root@master?ceph]#?ceph-deploy?osd?prepare?master:/var/local/osd0?node01:/var/local/osd1?node02:/var/local/osd2??#?權限修改?[root@master?ceph]#?chmod?777?-R?/var/local/osd{0..2}?[root@master?ceph]#?chmod?777?-R?/var/local/osd{0..2}/*??#?激活osd?[root@master?ceph]#?ceph-deploy?osd?activate?master:/var/local/osd0?node01:/var/local/osd1?node02:/var/local/osd2??#?查看狀態?[root@master?ceph]#?ceph-deploy?osd?list?master?node01?node02?復制代碼

      2.9 統一配置

      用ceph-deploy把配置文件和admin密鑰拷貝到所有節點,這樣每次執行Ceph命令行時就無需指定monitor地址和ceph.client.admin.keyring了

      [root@master?ceph]#?ceph-deploy?admin?master?node01?node02??#?各節點修改ceph.client.admin.keyring權限:?[root@master?ceph]#?chmod?+r?/etc/ceph/ceph.client.admin.keyring??#?查看狀態?[root@master?ceph]#?ceph?health?HEALTH_OK?[root@master?ceph]#?ceph?-s?????cluster?5b9eb8d2-1c12-4f6d-ae9c-85078795794b??????health?HEALTH_OK??????monmap?e1:?1?mons?at?{master=172.16.60.2:6789/0}?????????????election?epoch?3,?quorum?0?master??????osdmap?e15:?3?osds:?3?up,?3?in?????????????flags?sortbitwise,require_jewel_osds???????pgmap?v27:?64?pgs,?1?pools,?0?bytes?data,?0?objects?????????????15681?MB?used,?1483?GB?/?1499?GB?avail???????????????????64?active+clean????????????????????????復制代碼

      2.10 部署MDS服務

      我們在node01/node02上安裝部署MDS服務

      [root@master?ceph]#?ceph-deploy?mds?create?node01?node02??#?查看狀態?[root@master?ceph]#?ceph?mds?stat?e3:,?2?up:standby?[root@master?~]#?ceph?mon?stat?e1:?1?mons?at?{master=172.16.60.2:6789/0},?election?epoch?4,?quorum?0?master??#?查看服務?[root@master?ceph]#?systemctl?list-unit-files?|grep?ceph?ceph-create-keys@.service?????????????????????static???ceph-disk@.service????????????????????????????static???ceph-mds@.service?????????????????????????????disabled?ceph-mon@.service?????????????????????????????enabled??ceph-osd@.service?????????????????????????????enabled??ceph-radosgw@.service?????????????????????????disabled?ceph-mds.target???????????????????????????????enabled??ceph-mon.target???????????????????????????????enabled??ceph-osd.target???????????????????????????????enabled??ceph-radosgw.target???????????????????????????enabled??ceph.target???????????????????????????????????enabled??復制代碼

      至此,基本上完成了ceph存儲集群的搭建。

      三 創建ceph文件系統

      3.1 創建文件系統

      關于創建存儲池 確定 pg_num 取值是強制性的,因為不能自動計算。下面是幾個常用的值:

      少于 5 個 OSD 時可把 pg_num 設置為 128

      OSD 數量在 5 到 10 個時,可把 pg_num 設置為 512

      OSD 數量在 10 到 50 個時,可把 pg_num 設置為 4096

      OSD 數量大于 50 時,你得理解權衡方法、以及如何自己計算 pg_num 取值

      自己計算 pg_num 取值時可借助 pgcalc 工具 ??隨著 OSD 數量的增加,正確的 pg_num 取值變得更加重要,因為它顯著地影響著集群的行為、以及出錯時的數據持久性(即災難性事件導致數據丟失的概率)。

      [root@master?ceph]#?ceph?osd?pool?create?cephfs_data???[root@master?ceph]#?ceph?osd?pool?create?cephfs_metadata??[root@master?~]#?ceph?osd?pool?ls??rbd?[root@master?~]#??ceph?osd?pool?create?kube?128?pool?'kube'?created?[root@master?~]#?ceph?osd?pool?ls???????????????rbd?kube??#?查看證書?[root@master?~]#?ceph?auth?list?installed?auth?entries:?mds.node01?????????key:?AQB56m1dE42rOBAA0yRhsmQb3QMEaTsQ71jHdg==?????????caps:?[mds]?allow?????????caps:?[mon]?allow?profile?mds?????????caps:?[osd]?allow?rwx?mds.node02?????????key:?AQB66m1dWuhWKhAAtbiZN7amGcjUh6Rj/HNFkg==?????????caps:?[mds]?allow?????????caps:?[mon]?allow?profile?mds?????????caps:?[osd]?allow?rwx?osd.0?????????key:?AQA46W1daFx3IxAAE1esQW+t1fWJDfEQd+167w==?????????caps:?[mon]?allow?profile?osd?????????caps:?[osd]?allow?*?osd.1?????????key:?AQBA6W1daJG9IxAAQwETgrVc3awkEZejDSaaow==?????????caps:?[mon]?allow?profile?osd?????????caps:?[osd]?allow?*?osd.2?????????key:?AQBI6W1dot4/GxAAle3Ii3/D38RmwNC4yTCoPg==?????????caps:?[mon]?allow?profile?osd?????????caps:?[osd]?allow?*?client.admin?????????key:?AQBu4W1d90dZKxAAH/kta03cP5znnCcWeOngzQ==?????????caps:?[mds]?allow?*?????????caps:?[mon]?allow?*?????????caps:?[osd]?allow?*?client.bootstrap-mds?????????key:?AQBv4W1djJ1uHhAACzBcXjVoZFgLg3lN+KEv8Q==?????????caps:?[mon]?allow?profile?bootstrap-mds?client.bootstrap-mgr?????????key:?AQCS4W1dna9COBAAiWPu7uk3ItJxisVIwn2duA==?????????caps:?[mon]?allow?profile?bootstrap-mgr?client.bootstrap-osd?????????key:?AQBu4W1dxappOhAA5FanGhQhAOUlizqa5uMG3A==?????????caps:?[mon]?allow?profile?bootstrap-osd?client.bootstrap-rgw?????????key:?AQBv4W1dpwvsDhAAyp58v08XttJWzLoHWVHZow==?????????caps:?[mon]?allow?profile?bootstrap-rgw?復制代碼

      3.2 創建客戶端密鑰

      #?創建keyring?[root@master?~]#?ceph?auth?get-or-create?client.kube?mon?'allow?r'?osd?'allow?rwx?pool=kube'?-o?/etc/ceph/ceph.client.kube.keyring?[root@master?~]#?ceph?auth?list??#?將密鑰拷貝到node1和node2?[root@master?ceph]#?scp?ceph.client.kube.keyring?root@node01:/etc/ceph/?復制代碼

      四 卸載

      清理機器上的ceph相關配置:?停止所有進程:?stop?ceph-all?卸載所有ceph程序:ceph-deploy?uninstall?[{ceph-node}]?刪除ceph相關的安裝包:ceph-deploy?purge?{ceph-node}?[{ceph-data}]?刪除ceph相關的配置:ceph-deploy?purgedata?{ceph-node}?[{ceph-data}]?刪除key:ceph-deploy?forgetkeys?卸載ceph-deploy管理:yum?-y?remove?ceph-deploy?復制代碼

      參考鏈接

      ceph官方文檔

      ceph中文開源社區

      CentOS 7部署 Ceph分布式存儲架構

      存儲

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:WPS文本2013中設置打印時如何添加裝訂行
      下一篇:如何制作統計表格(excel如何制作統計表格)
      相關文章
      国产亚洲sss在线播放| 亚洲综合色在线观看亚洲| 亚洲电影日韩精品| 亚洲国产精品嫩草影院| 亚洲乱码中文字幕小综合| 亚洲AV无码久久精品成人 | 在线观看亚洲精品国产| 亚洲国产一区二区视频网站| 亚洲第一区精品观看| 亚洲va中文字幕无码| 亚洲国产成人乱码精品女人久久久不卡 | 亚洲一区中文字幕在线电影网| 亚洲成年人免费网站| 亚洲欧洲日产国码在线观看| 亚洲欧洲日产国码在线观看| 亚洲国产精品专区| 自拍日韩亚洲一区在线| 亚洲中文无码永久免| 亚洲av无码成人精品区一本二本| 亚洲AV性色在线观看| 久久人午夜亚洲精品无码区| 狠狠综合亚洲综合亚洲色| www.亚洲精品| 综合久久久久久中文字幕亚洲国产国产综合一区首 | va亚洲va日韩不卡在线观看| 亚洲精品国产电影| 亚洲中文字幕无码久久2017| 亚洲乱亚洲乱妇无码麻豆| 亚洲AV无一区二区三区久久| 中文字幕亚洲免费无线观看日本| 亚洲综合视频在线观看| 亚洲一级片在线播放| 亚洲欧美第一成人网站7777| 国产精品亚洲一区二区无码| 亚洲综合最新无码专区| 亚洲va久久久噜噜噜久久狠狠| 亚洲国产二区三区久久| 亚洲国产夜色在线观看| 亚洲欧美日韩中文二区| 亚洲国产综合人成综合网站| 亚洲熟妇无码另类久久久|