* 사전작업을 먼저 진행한 뒤에 아래와 같이 하시길 권장합니다.
[CLOUD/BlockStorage(Ceph)] - CEPH 설치 전 사전작업
* 구성은 이렇습니다.
CENTOS 7 환경 4대 서버를 구성하며,
Node 1 : mgmt, mon0, mgr, mds데몬 실행
Node 2 : mon1
Node 3 : osd0 ( 추가디스크 1개 )
Node 4 : osd1 ( 추가디스크 1개 )
1. nautilus 패키지 설치
# echo '[ceph]
name=Ceph packages for $basearch
baseurl=http://download.ceph.com/rpm-nautilus/el7/$basearch
enabled=1
priority=2
gpgcheck=1
type=rpm-md
gpgkey=https://download.ceph.com/keys/release.asc
[ceph-noarch]
name=Ceph noarch packages
baseurl=http://download.ceph.com/rpm-nautilus/el7/noarch
enabled=1
priority=2
gpgcheck=1
type=rpm-md
gpgkey=https://download.ceph.com/keys/release.asc
[ceph-source]
name=Ceph source packages
baseurl=http://download.ceph.com/rpm-nautilus/el7/SRPMS
enabled=0
priority=2
gpgcheck=1
type=rpm-md
gpgkey=https://download.ceph.com/keys/release.asc ' > /etc/yum.repos.d/ceph.repo
2. MGMT 서버에서 ceph-deploy 설치 진행, ceph-deploy를 이용해서 설치합니다.
[root@mgmt ~]# yum -y install ceph-deploy
[root@mgmt ~]# ceph-deploy new mgmt mon0
[root@mgmt ~]# ceph-deploy install mgmt mon0 osd0 osd1
ceph.conf 파일 수정
[root@mgmt ~]# cat ceph.conf
[global]
fsid = 920e93dd-bbc6-4b5e-9ef2-dfba936d312b
mon_initial_members = mgmt, mon0
mon_host = 10.4.0.12,10.4.0.14
auth_cluster_required = cephx
auth_service_required = cephx
auth_client_required = cephx
filestore_xattr_use_omap = true
osd_pool_default_size = 2
rbd_default_features = 1
osd_journal_size = 10240
osd_pool_default_pg_num = 128
osd_pool_default_pgp_num = 128
[mon]
mon_host = mgmt, mon0
mon_addr = 10.4.0.12,10.4.0.14
mon_clock_drift_allowed = .3
mon_clock_drift_warn_backoff = 30 # Tell the monitor to backoff from this warning for 30 seconds
mon_osd_full_ratio = .90
mon_osd_nearfull_ratio = .85
mon_osd_report_timeout = 300
debug_ms = 1
debug_mon = 20
debug_paxos = 20
debug_auth = 20
[mon.0]
host = mgmt
mon_addr = 10.4.0.12:6789
[mon.1]
host = mon0
mon_addr = 10.4.0.14:6789
[mgr]
mgr initial modules = balancer dashboard
[mds]
mds_standby_replay = true
mds_cache_size = 250000
debug_ms = 1
debug_mds = 20
debug_journaler = 20
[mds.0]
host = mgmt
[osd.0]
host = osd0
[osd.1]
host = osd1
[root@mgmt ~]# ceph-deploy --overwrite-conf mon create-initial
[root@mgmt ~]# ceph-deploy mon create mgmt mon0
[root@mgmt ~]# ceph-deploy gatherkeys mgmt mon0
[root@mgmt ~]# ceph-deploy mds create mgmt
OSD가 추가가 되지 않았기 때문에 현재 상태는 아래와 같이 뜨게 됩니다.
[root@mgmt ~]# ceph -s
[errno 2] error connecting to the cluster
3. OSD 추가
[root@mgmt ~]# ceph-deploy osd create --data /dev/vdb osd0
[root@mgmt ~]# ceph-deploy osd create --data /dev/vdb osd1
[root@mgmt ~]# ceph-deploy mgr create mgmt
[root@mgmt ~]# ceph-deploy admin mgmt mon0 osd0 osd1
OSD 추가 후, 상태값을 보게 되면 아래과 같이 뜨게 됩니다.
[root@mgmt ~]# ceph -s
cluster:
id: 920e93dd-bbc6-4b5e-9ef2-dfba936d312b
health: HEALTH_OK
services:
mon: 2 daemons, quorum mgmt,mon0 (age 6m)
mgr: mgmt(active, since 63s)
mds: 1 up:standby
osd: 2 osds: 2 up (since 89s), 2 in (since 89s)
data:
pools: 0 pools, 0 pgs
objects: 0 objects, 0 B
usage: 2.0 GiB used, 58 GiB / 60 GiB avail
pgs:
4. DashBoard 설치
기존 사용하던 Dashboard 형태와는 다른 형태로 UI 환경도 변경되었으며, Nautilus 이후로 pool을 생성하는 등 작업을 수행할 수 있습니다.
[root@mgmt ~]# yum install ceph-mgr-dashboard
[root@mgmt ~]# ceph mgr module enable dashboard
[root@mgmt ~]# ceph dashboard create-self-signed-cert
Self-signed certificate created
Dashboard 사용자 생성
[root@mgmt ~]# ceph dashboard ac-user-create [사용자계정ID] [Password] [role]
예시)
[root@mgmt ~]# ceph dashboard ac-user-create admin test1234 administrator
{"username": "admin", "lastUpdate": 1605242275, "name": null, "roles": ["administrator"], "password": "$2b$12$VOOkqIcoHeuz4bCui4yAyu7a7fCYP2t1Cn2NvTQeNf5mfbWwnLgXm", "email": null}
[root@mgmt ~]# ceph mgr services
{
"dashboard": "https://mgmt:8443/"
}
접속하면 안전하지 않는 페이지라고 뜨게되며, Dashboard 페이지가 뜹니당
로그인 후 접속하게 되면 Dashboard가 뜨게 되며, 현재 상태값과, 설정등을 쉽게 할 수 있습니다.
대시보드 설정 시, 권한으로 pool 이 생성이 가능한 부분이 있어, 보안적으로 안전하게 설정해야 합니다.
1. IPTABLES 설정. (접근가능한 ip로만 8443 포트 허용해줄것)
2. user 생성 시 administrator 권한이 아닌, read_only 권한으로 주고, admin 계정에 대한 권한은 삭제할 것.
* Dashboard 설정에 대한 내용 참고
https://documentation.suse.com/ses/6/html/ses-all/ceph-dashboard.html
'BlockStorage(Ceph)' 카테고리의 다른 글
[ERROR] RuntimeError: Unable to create a new OSD id (0) | 2021.01.25 |
---|---|
[ERROR] missing required protocol features (0) | 2021.01.15 |
Module 'restful' has failed dependency: No module named 'pecan' (0) | 2020.11.01 |
[ceph-deploy error] RuntimeError: command returned non-zero exit status: 1 (0) | 2020.11.01 |
Ceph 업그레이드 (Jewel -> Luminous) (0) | 2020.10.28 |