18. $ ceph-cli -h
NAME:
ceph-cli - use ceph volume for your PM/VM!
USAGE:
ceph-cli [global options] command [command options] [arguments...]
COMMANDS:
auth Certify with `TOKEN`
show Gets detailed information about the given `VOLUME ID` or `VOLUME NAME`
list Get volume list
create Create volume
delete Delete Volume by `VOLUME ID` or `VOLUME NAME`
attach Attach volume
detach Detach volume
extend Extend volume
reset Rest volume
GLOBAL OPTIONS:
--debug, -d Enable debug logging
--help, -h show help
Use Case #3: Ceph CLI
39. 우리가 해결한 방법은?
rbd map 이 아닌 rbd kernel map 사용, “osd_request_timeout” 옵션 적용
http://docs.ceph.com/docs/argonaut/rbd/rbd-ko/
(3600 second)
(Linux kernel : 4.11 이후)
40. rbd kernel map을 사용 시 이슈 1)
: Client 에서 keyring 이 그대로 노출됨
$ cat /sys/bus/rbd/devices/0/config_info
[mon_ip] name=admin,secret=AQDnZHxxAAy4OUSreyDDE6YMwKOT4Bug==
$ cat config_info
[mon_ip] name=admin,key=client.admin volumes vol01 -
Ø 해결 방법: Keyutils 적용
41. rbd kernel map을 사용 시 이슈 2)
: different major number
$ ls -al /dev/rbd*
brw------- 1 root root 252, 0 Dec 5 21:16 /dev/rbd0
brw------- 1 root root 251, 0 Dec 5 21:16 /dev/rbd1
brw------- 1 root root 242, 0 Dec 5 21:17 /dev/rbd10
brw------- 1 root root 241, 0 Dec 7 15:43 /dev/rbd11
brw------- 1 root root 240, 0 Dec 18 11:49 /dev/rbd12
$ ls -la /dev/rbd*
brw-rw----. 1 root disk 252, 0 Feb 8 02:14 /dev/rbd0
brw-rw----. 1 root disk 252, 16 Feb 8 02:13 /dev/rbd1
brw-rw----. 1 root disk 252, 32 Feb 8 02:14 /dev/rbd2
brw-rw----. 1 root disk 252, 48 Feb 8 02:20 /dev/rbd3
brw-rw----. 1 root disk 252, 64 Feb 8 02:29 /dev/rbd4
Ø 해결 방법 : single_major 적용
echo ”${mon_ip} name=admin,secret=*** volumes vol01" > /sys/bus/rbd/add_single_major
45. Configuration & Manual schedule
• osd scrub chunk min = 1
• osd scrub chunk max = 1
• Scrub : 전체 pg 가 2일에 1회 실행
• Deep scrub : 전체 pg가 34일에 1회 실행(동시 최대 1개)
$ ceph osd pool set $pool nodeep-scrub
Ø Configuration
Ø Set noscrub/nodeep-scrub
Ø Manual Schedule
47. Ceph Object 저장 방식 – Directory 구조
/var/lib/ceph/osd/ceph-4/current/3.72_head/
OSD DIR OSD ID PG ID
rbd_data.2576d643c9869.0000000000000000__head_22269772__3
Block_name_prefix Seq Num Hash Pool ID
48. $ find /var/lib/ceph/osd -type f -name *vol01*
/var/lib/ceph/osd/ceph-4/current/3.7a_head/rbd_id.vol01__head_E10E397A__3
$ hexdump -C /var/lib/ceph/osd/ceph-4/current/3.7a_head/rbduid.vol01__head_E10E397A__3
00000000 0d 00 00 00 32 35 37 36 64 36 34 33 63 39 38 36 |....2576d643c986|
00000010 39 |9|
Block_name_prefix : 2576d643c9869
2. “blocke_name_prefix” 로 모든 object get
1. rbd image의 block_name_prefix 찾기
3. 모은 object 로 image cerate & device 생성
Ceph Data 복구 방법
52. MON MON MONMON
MON
$ monmaptool --rm ${mon_id} /tmp/monmap
1. 전체 mon stop, monmap 1개로 변경
3. 이후 mon 전체 배포하여 5개 quorum 구성
2. 새로운 monmap 적용
$ ceph-mon --inject-monmap /tmp/oo
Mon 장애 복구
56. MON
/local_backup
backup_pool
백업 정책>
- 백업 주기 : 1일 2회 (새벽 2시, 3시)
- 보관 주기 : 1 주
- 2개 mon에서 교대로 백업 수행,
- 다른 ceph cluster 로 remote backup
/dev/rbd
Ceph
Mon backup
/var/lib/ceph/mon/ceph-{mon_id}