ceph create rbd and mount
ceph create rbd
개요
- ceph version 은 15.2 입니다.
ceph create replicated pool
# pg calcualte exp : 100 = (3 * 100) / 3
## 대략 7.x 가 나와서 default 옵션인 8로 진행
## (OSDs * 100)
##Total PGs = ------------
## pool size
ceph osd pool create rbd_repl_bench 8 8
# rbd create \
# ${IMAGE_NAME:=img_repl_bench} \
# --size ${10G, 1024:default unit is MB} \
# --pool ${POOL_NAME:=rbd_repl_bench}
rbd create img_repl_bench --size 102400 --pool rbd_repl_bench
# rbd 의 기능을 비활성 화 하여야만이 image 를 host 에 map 할 수 있다.
rbd feature disable rbd_repl_bench/img_repl_bench object-map fast-diff deep-flatten
# host 에 map 한다.
## mapping 시에 mod_probe 의 rbd 가 enable 되어있어야 하며
## linux 의 kernal rbd 가 호스트에 bus 를 생성하여서 통신한다.
rbd map rbd_repl_bench/img_repl_bench
mkfs.xfs /dev/rbd2
mkdir -p /mnt/rbd-repl/
fstrim -v /mnt/rbd-repl
# benchmark script 직접 돌려보기 바란다.
rbd bench --io-type write rbd_repl_bench/img_repl_bench --io-size 4M --rbd-cache=false
rbd bench rbd_repl_bench/img_repl_bench --io-type write --io-size 4M --io-threads 16 --io-total 10G --io-pattern rand --rbd-cache=false
date; time dd if=/dev/zero of=./testfile bs=1G count=5 oflag=dsync; sync; rm -rf testfile ; sync; date; fstrim -v /mnt/rbd-repl;
# 호스트의 disk 를 쓰고있는지 모니터링 하는 스크립트
iostat -xkdzt /dev/sdb /dev/sdc /dev/sdd /dev/sde 1 | tee rbd-map-repl.txt
# rbd mapped image 에 write 한 후에 데이터를 삭제할 경우에 rados 를 이용하여 조회하면 pool 내에는 데이터가 그대로 있다.
# scrub 옵션을 활성화 하여야 하며 manually 하게 pool 의 데이터를 삭제하려면 아래 커맨드를 실행 한다.
# disk 의 trim 기능이 잇어야 한다고 한다. 최신 ssd 의 경우 보장하지만 회사 서버는 그리 최신이 아니여서 수동으로 진행한다.
# fstrim -v ${TRIM_POINT}
fstrim -v /mnt/rbd-repl
ceph create erasure code pool
# erasure coded pool 의 경우 metadata pool 과 data pool 이 필요하다.
# erasure code profile 의 경우 default 옵션으로 진행한다.
ceph osd pool create rbd_erasure_meta_bench 8 8
ceph osd pool create rbd_erasure_bench erasure
# rbd image 로 사용하기 위한 옵션 enable
ceph osd pool set rbd_erasure_bench allow_ec_overwrites true
# rbd image create
rbd create --size 100G --data-pool rbd_erasure_bench rbd_erasure_meta_bench/img_erasure_bench
# rbd mapping 하기 위한 옵션 disable 처리
rbd feature disable rbd_erasure_meta_bench/img_erasure_bench object-map fast-diff deep-flatten
# rbd image 를 호스트에 mapping 한다.
rbd map rbd_erasure_meta_bench/img_erasure_bench
# file system 생성 : recommand option 인 xfs 로 생성
mkfs.xfs /dev/rbd1
# mount point mkdir
mkdir -p /mnt/rbd-era/
# mount
mount /dev/rbd1 /mnt/rbd-era/
# benchamrk script
rados bench -p rbd_repl_bench 10 write --no-cleanup
rados -p rbd_repl_bench cleanup
rados bench -p rbd_erasure_bench 10 write --no-cleanup
rados -p rbd_erasure_bench cleanup
dd if=/dev/zero of=./testfile bs=1G count=5 oflag=dsync
date; time dd if=/dev/zero of=./testfile bs=1G count=5 oflag=dsync; sync; rm -rf testfile ; sync; date;
# sampling scripts
iostat -xkdzt -p ALL 1
iostat -xkdzt /dev/sdc 1
iostat -xkdzt /dev/sdb /dev/sdc /dev/sdd /dev/sde 1 | tee ceph-bench.txt
iostat -xkcdzt /dev/sdc /dev/sdd /dev/sde 1 | tee ceph-bench.txt
Last modified on 2020-06-07