[ ceph-deploy ] 01. ์‚ฌ์ „์ž‘์—…

2022. 2. 26. 18:14ใ†๐ŸŽฏ OpenSource/Ceph

ceph์˜ ๊ธฐ๋ณธ ๋™์ž‘ ์›๋ฆฌ๋ฅผ ์ง์ ‘ ํŒŒ์•…ํ•ด ๋ณด๊ธฐ ์œ„ํ•ด ceph-deploy๋กœ ๋ฐฐํฌ๋ฅผ ํ•ด๋ณด๊ณ ์ž ํ•œ๋‹ค.

์„ค์น˜ ๋ฒ„์ „ : nautilus
๊ณต์‹ ๊ฐ€์ด๋“œ : https://docs.ceph.com/en/nautilus/start/

ceph ์‚ฌ์šฉ ์šฉ๋„

  1. openstack cinder, glance์˜ backend storage๋กœ ์‚ฌ์šฉ
    -> RBD ์„ค์น˜
  2. Object Storage ์„œ๋น„์Šค ๊ตฌ์ถ•
    -> RADOSGW ์„ค์น˜

๊ตฌ์ถ• ํ™˜๊ฒฝ

OS : Ubuntu 20.04
deploy ์„œ๋ฒ„ 1๋Œ€
ceph osd ๋…ธ๋“œ 3๋Œ€
-> ceph ์—๋Š” osd disk ๊ฐ 100GB (vdb, vdc, vdd)

Host Name Service Network Internal Network External Network Tenant Network Storage Network
wglee-deploy   20.20.0.10 183.10.0.10 20.20.10.10 20.20.20.10
wglee-ceph-001   20.20.0.50 183.10.0.50 20.20.10.50 20.20.20.50
wglee-ceph-002   20.20.0.51 183.10.0.51 20.20.10.51 20.20.20.51
wglee-ceph-003   20.20.0.52 183.10.0.52 20.20.10.52 20.20.20.52

 

๋ฐฐํฌ ์ „ ์‚ฌ์ „ ์ž‘์—…

Ubuntu OS ๊ธฐ์ค€์œผ๋กœ ์„ค์น˜๋ฅผ ์ง„ํ–‰ํ•œ๋‹ค.

ceph-deploy ํŒจํ‚ค์ง€ ์„ค์น˜

ceph-deploy ๋ฐฉ์‹์€ deploy ๋…ธ๋“œ์—์„œ admin ๊ถŒํ•œ์„ ๊ฐ€์ง„ ๊ณ„์ •์„ ์ด์šฉํ•ด ๊ฐ ceph ๋…ธ๋“œ๋“ค๋กœ ceph์„ ๋ฐฐํฌํ•œ๋‹ค.
deploy ์„œ๋ฒ„์— ceph-deploy ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•˜๋„๋ก ํ•œ๋‹ค.
๋˜ํ•œ, deploy ๋ฐ ๊ฐ ceph ๋…ธ๋“œ๋“ค์€ ์‹œ๊ฐ„ ๋™๊ธฐํ™”๊ฐ€ ๋˜์–ด ์žˆ์–ด์•ผ ํ•œ๋‹ค.
๊ฐ€์ƒ์„œ๋ฒ„ ์ƒ์„ฑ ํ›„์— chrony ๋กœ ๋งž์ถฐ๋‘” ์ƒํƒœ์ด๊ธฐ ๋•Œ๋ฌธ์— ํ•ด๋‹น ๊ณผ์ •์€ ์—ฌ๊ธฐ์„œ ์ƒ๋žตํ•˜์˜€๋‹ค.

root@deploy:/home/ceph-deploy# wget -q -O- 'https://download.ceph.com/keys/release.asc' | sudo apt-key add -
OK

# nautilus ๋ฒ„์ „ ์ง€์ •ํ•˜์—ฌ repo ์ถ”๊ฐ€
root@deploy:/home/ceph-deploy# echo deb https://download.ceph.com/debian-nautilus/ $(lsb_release -sc) main | sudo tee /etc/apt/sour
ces.list.d/ceph.list
deb https://download.ceph.com/debian-nautilus/ focal main

ceph-deploy ํŒจํ‚ค์ง€ ์„ค์น˜

root@deploy:/home/ceph-deploy# sudo apt update
Hit:1 http://ppa.launchpad.net/ansible/ansible/ubuntu trusty InRelease
Hit:2 http://archive.ubuntu.com/ubuntu focal InRelease
Get:3 http://security.ubuntu.com/ubuntu focal-security InRelease [114 kB]
Get:4 http://archive.ubuntu.com/ubuntu focal-updates InRelease [114 kB]
Get:5 https://download.ceph.com/debian-nautilus focal InRelease [8391 B]
Hit:6 http://ppa.launchpad.net/ansible/ansible/ubuntu focal InRelease
Get:7 https://download.ceph.com/debian-nautilus focal/main amd64 Packages [541 B]
Get:8 http://archive.ubuntu.com/ubuntu focal-backports InRelease [108 kB]
Get:9 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages [1581 kB]
Fetched 1926 kB in 3s (575 kB/s)
Reading package lists... Done
Building dependency tree
Reading state information... Done
49 packages can be upgraded. Run 'apt list --upgradable' to see them.

root@deploy:/home/ceph-deploy# apt install ceph-deploy
0 upgraded, 1 newly installed, 0 to remove and 49 not upgraded.

 

๋ฐฐํฌ์— ์‚ฌ์šฉํ•  ๊ณ„์ • ์ƒ์„ฑ

deploy ์„œ๋ฒ„์—์„œ ๊ฐ ceph ์„œ๋ฒ„์— ํŒจ์Šค์›Œ๋“œ ์—†์ด admin ๊ถŒํ•œ์œผ๋กœ ์ ‘์†ํ•  ๊ณ„์ •์„ ์„ธํŒ…ํ•œ๋‹ค.
๊ฐ ๋…ธ๋“œ์—์„œ cephuser ๊ณ„์ •์„ ์ƒ์„ฑํ•˜๊ณ  sudo ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•œ๋‹ค.

root@wglee-ceph-001:~# useradd -d /home/cephuser -m cephuser
root@wglee-ceph-001:~# passwd cephuser
root@wglee-ceph-001:~# echo "cephuser ALL = (root) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/cephuser
cephuser ALL = (root) NOPASSWD:ALL
root@wglee-ceph-001:~# sudo chmod 0440 /etc/sudoers.d/cephuser

root@wglee-ceph-002:~# useradd -d /home/cephuser -m cephuser
root@wglee-ceph-002:~# passwd cephuser
root@wglee-ceph-002:~# echo "cephuser ALL = (root) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/cephuser
cephuser ALL = (root) NOPASSWD:ALL
root@wglee-ceph-002:~# sudo chmod 0440 /etc/sudoers.d/cephuser

root@wglee-ceph-003:~# useradd -d /home/cephuser -m cephuser
root@wglee-ceph-003:~# passwd cephuser
root@wglee-ceph-003:~# echo "cephuser ALL = (root) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/cephuser
cephuser ALL = (root) NOPASSWD:ALL
root@wglee-ceph-003:~# sudo chmod 0440 /etc/sudoers.d/cephuser

์ด๋ ‡๊ฒŒ ์ƒ์„ฑํ•œ cephuser๊ฐ€ ssh keypair ๋ฐฉ์‹์œผ๋กœ ceph ์„œ๋ฒ„์— ์ ‘์†ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•œ๋‹ค.
๋‚˜๋Š” ์ด๋ฏธ deploy์— ssh-keygen์œผ๋กœ ์ƒ์„ฑํ•œ ํ‚คํŽ˜์–ด๊ฐ€ ์žˆ์–ด์„œ ๊ทธ๊ฑธ ์‚ฌ์šฉํ–ˆ๋‹ค.

root@deploy:/etc/ansible# ssh-copy-id cephuser@wglee-ceph-001
Number of key(s) added: 1

root@deploy:/etc/ansible# ssh-copy-id cephuser@wglee-ceph-002
Number of key(s) added: 1

root@deploy:/etc/ansible# ssh-copy-id cephuser@wglee-ceph-003
Number of key(s) added: 1

 

๋ฐ๋ชฌ ๊ฐ„ ํ†ต์‹  ๊ฐ€๋Šฅํ•˜๋„๋ก ๋ฐฉํ™”๋ฒฝ ์„ค์ •

ceph mon ๋ฐ osd ๋ฐ๋ชฌ์ด ํ†ต์‹ ํ•  ํฌํŠธ ๋ฐฉํ™”๋ฒฝ์„ ์„ค์ •ํ•œ๋‹ค.
Ceph monitor ๋ฐ๋ชฌ์€ ๊ธฐ๋ณธ์œผ๋กœ 6789 ํฌํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ , Ceph osd๋Š” 6800:7300 ranged์˜ ํฌํŠธ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๊ณ  ํ•œ๋‹ค.
ํ†ต์‹ ์ด ์›ํ™œํ•˜๊ฒŒ ๋  ์ˆ˜ ์žˆ๋„๋ก ํ•„์š”ํ•œ ํฌํŠธ์— ๋Œ€ํ•œ Inbound ๋ฃฐ์„ ํ—ˆ์šฉํ•œ๋‹ค.
๋ชจ๋“  ceph, ์ฆ‰ wglee-ceph-001~003์—์„œ ๋˜‘๊ฐ™์ด ์ˆ˜ํ–‰ํ•˜๋„๋ก ํ•œ๋‹ค.

root@wglee-ceph-001:~# sudo apt install iptables-persistent
root@wglee-ceph-001:~# iptables -A INPUT -i ens7 -p tcp -s 20.20.20.0/24 --dport 6789 -j ACCEPT
root@wglee-ceph-001:~# sudo iptables -A INPUT -i ens7 -p tcp --match multiport -s 20.20.20.0/24 --dports 6800:7300  -j ACCEPT
root@wglee-ceph-001:~# iptables-save > /etc/iptables/rules.v4
root@wglee-ceph-001:~# iptables-restore < /etc/iptables/rules.v4

๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ ์šฉ๋˜์—ˆ๋‹ค.

root@wglee-ceph-001:~# iptables -nvL
Chain INPUT (policy ACCEPT 332 packets, 26857 bytes)
 pkts bytes target     prot opt in     out     source               destination
    0     0 ACCEPT     tcp  --  ens7   *       20.20.20.0/24        0.0.0.0/0            tcp dpt:6789
    0     0 ACCEPT     tcp  --  ens7   *       20.20.20.0/24        0.0.0.0/0            multiport dports 6800:7300

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain OUTPUT (policy ACCEPT 235 packets, 32749 bytes)
 pkts bytes target     prot opt in     out     source               destination