Rook์ ์ธ๊ธฐ๊ฐ ๋์์ง๋ฉด์ ๊ทธ ๊ณผ์ ์์ ์ฌ๋ฌ๋ถ์ ๊ธฐ๋ค๋ฆฌ๊ณ ์๋ ํจ์ ๊ณผ ๋ฌธ์ ์ ์ ๋ํด ์ด์ผ๊ธฐํ๊ณ ์ถ์ต๋๋ค.
๋ด ์๊ฐ: ํด๋จธ ๋ฒ์ ์์ Ceph ๊ด๋ฆฌ ๊ฒฝํ, ์ปค๋ฎค๋ํฐ ์ฐฝ๋ฆฝ์
๊ทผ๊ฑฐ๊ฐ ์๋ ์ผ์ด ์๋๋ก ํ๊ธฐ ์ํด Ceph ๋ฌธ์ ์ ๋ํด Habr์ด ์น์ธํ ๊ฒ์๋ฌผ(๋ฑ๊ธ์ผ๋ก ํ๋จ)์ ์ฐธ์กฐํ๊ฒ ์ต๋๋ค. ๋๋ ๋ํ ์ด ๊ฒ์๋ฌผ์์ ๋๋ถ๋ถ์ ๋ฌธ์ ์ ์ง๋ฉดํ์ต๋๋ค. ์ฌ์ฉ๋ ์๋ฃ์ ๋งํฌ๋ ํฌ์คํ ๋ง์ง๋ง์ ์์ต๋๋ค.
Rook์ ๋ํ ๊ฒ์๋ฌผ์์ ์ฐ๋ฆฌ๋ ์ด์ ๋๋ฌธ์ ceph๋ฅผ ์ธ๊ธํฉ๋๋ค. Rook์ ๊ธฐ๋ณธ์ ์ผ๋ก kubernetes๋ก ํฌ์ฅ๋ ceph์ด๋ฏ๋ก ๋ชจ๋ ๋ฌธ์ ๋ฅผ ์์๋ฐ์ต๋๋ค. ์ธํ ๋ฌธ์ ๋ถํฐ ์์ํด ๋ณด๊ฒ ์ต๋๋ค.
ํด๋ฌ์คํฐ ๊ด๋ฆฌ ๋จ์ํ
Rook์ ์ฅ์ ์ค ํ๋๋ kuberentes๋ฅผ ํตํด ceph๋ฅผ ๊ด๋ฆฌํ๊ธฐ ์ฝ๋ค๋ ๊ฒ์ ๋๋ค.
๊ทธ๋ฌ๋ ceph์๋ ๊ตฌ์ฑ์ ์ํ 1000๊ฐ ์ด์์ ๋งค๊ฐ๋ณ์๊ฐ ํฌํจ๋์ด ์๋ ๋ฐ๋ฉด, ๋์์ rook๋ฅผ ํตํด ์ฐ๋ฆฌ๋ ๊ทธ ์ค ์์๋ง ํธ์งํ ์ ์์ต๋๋ค.
๋น๋๋ ์
> ceph ๋ฐ๋ชฌ mon.a ๊ตฌ์ฑ ํ์ | ํ์ฅ์ค -l
1401
Rook์ ceph๋ฅผ ์ค์นํ๊ณ ์
๋ฐ์ดํธํ๋ ํธ๋ฆฌํ ๋ฐฉ๋ฒ์ผ๋ก ์๋ฆฌ์ก๊ณ ์์ต๋๋ค.
Rook ์์ด๋ ceph๋ฅผ ์ค์นํ๋๋ฐ๋ ๋ฌธ์ ๊ฐ ์์ต๋๋ค - ansible ํ๋ ์ด๋ถ์ 30๋ถ๋ง์ ์์ฑ๋๋๋ฐ ์
๋ฐ์ดํธ์ ๋ฌธ์ ๊ฐ ๋ง์ต๋๋ค.
Krok์ ๊ฒ์๋ฌผ์์ ์ธ์ฉ
์: Hummer์์ Jewel๋ก ์ ๋ฐ์ดํธํ ํ ํฌ๋ฌ์ ํ๋๋ธ์ด ์ฌ๋ฐ๋ฅด๊ฒ ์๋ํ์ง ์์ต๋๋ค.
> ceph osd crush ์ผ ํ๋๋ธ
{
...
"straw_calc_version": 1,
"allowed_bucket_algs": 22,
"ํ๋กํ": "์ ์ ์์",
"optimal_tunables": 0,
...
}
๊ทธ๋ฌ๋ ๋ง์ด๋ ๋ฒ์ ๋ด์์๋ ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
์: ์
๋ฐ์ดํธ 12.2.6์ผ๋ก ์ธํด ํด๋ฌ์คํฐ๊ฐ ์ํ ์ค๋ฅ ์ํ๊ฐ ๋๊ณ ์กฐ๊ฑด๋ถ๋ก PG๊ฐ ์ค๋จ๋จ
์ ๋ฐ์ดํธํ์ง ๋ง๊ณ ๊ธฐ๋ค๋ ค์ ํ ์คํธํ์๊ฒ ์ต๋๊น? ํ์ง๋ง ์ฐ๋ฆฌ๋ ๋ฌด์๋ณด๋ค๋ ์ ๋ฐ์ดํธ์ ํธ์๋ฅผ ์ํด Rook์ ์ฌ์ฉํ๋ ๊ฒ ๊ฐ์ต๋๋ค.
Rook์ ์ฌํด ๋ณต๊ตฌ ํด๋ฌ์คํฐ์ ๋ณต์ก์ฑ
์: OSD๋ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ฉด์ ๋จ์ด์ง๋๋ค. ๋ฌธ์ ๊ฐ ๊ตฌ์ฑ์ ๋งค๊ฐ๋ณ์ ์ค ํ๋์ ์๋ค๊ณ ์์ฌ๋์ด ํน์ ๋ฐ๋ชฌ์ ๋ํ ๊ตฌ์ฑ์ ๋ณ๊ฒฝํ๊ณ ์ถ์ง๋ง kubernetes ๋ฐ DaemonSet์ด ์๊ธฐ ๋๋ฌธ์ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค.
๋์์ด ์์ต๋๋ค. ceph Tell osd.Num injectargs๊ฐ ์๋ํ์ง ์์ต๋๋ค. OSD๊ฐ ๊ฑฐ์ง๋ง์ ํ๊ณ ์์ต๋๋ค.
๋๋ฒ๊ทธ ๋์ด๋
์ผ๋ถ ์ค์ ๋ฐ ์ฑ๋ฅ ํ ์คํธ์์๋ ๋ฐ๋ชฌ์ osd ์์ผ์ ์ง์ ์ฐ๊ฒฐํด์ผ ํฉ๋๋ค. Rook์ ๊ฒฝ์ฐ ๋จผ์ ์ํ๋ ์ปจํ ์ด๋๋ฅผ ์ฐพ์ ๋ค์ ํด๋น ์ปจํ ์ด๋๋ก ๋ค์ด๊ฐ์ ๋๋ฒ๊ทธ์ ๋๋ฝ๋ ๋๊ตฌ๋ฅผ ์ฐพ์ ๋งค์ฐ ๋นํฉํด์ผ ํฉ๋๋ค.
OSD๋ฅผ ์์ฐจ์ ์ผ๋ก ์ฌ๋ฆฌ๊ธฐ ์ด๋ ค์
์: OSD๊ฐ OOM์ ๋น ์ง๊ณ ์ฌ์กฐ์ ์ด ์์๋ ํ ๋ค์ ํญ๋ชฉ์ด ๋จ์ด์ง๋๋ค.
ํด๊ฒฐ ๋ฐฉ๋ฒ: OSD๋ฅผ ํ ๋ฒ์ ํ๋์ฉ ์ฌ๋ฆฌ๊ณ ํด๋ฌ์คํฐ์ ์์ ํ ํฌํจ๋ ๋๊น์ง ๊ธฐ๋ค๋ ธ๋ค๊ฐ ๋ค์ OSD๋ฅผ ์ฌ๋ฆฝ๋๋ค. (์์ธํ ๋ด์ฉ์ Ceph ๋ณด๊ณ ์์์ ํ์ธํ์ธ์. ์ฌํด ๋ถ์)
๋ฒ ์ด๋ฉํ ์ค์น์ ๊ฒฝ์ฐ ์ด๋ ๊ฐ๋จํ ์์ผ๋ก ์ํ๋ฉ๋๋ค. Rook์ ๊ฒฝ์ฐ ๋ ธ๋๋น ํ๋์ OSD๋ ํน๋ณํ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ๋ ธ๋๋น OSD > 1์ธ ๊ฒฝ์ฐ ๋์ฒด ๋ฆฌํํ ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค.
๋ฌผ๋ก ํด๊ฒฐํ ์ ์์ง๋ง Rook์ ์ฌ์ฉํ์ฌ ์์ ์ ๋จ์ํํ์ง๋ง ๋ ๋ณต์กํด์ง๋๋ค.
์ธํ ๋ฐ๋ชฌ์ ๋ํ ํ๊ณ ์ ํ์ ์ด๋ ค์
ceph์ ๋ฒ ์ด๋ฉํ ์ค์น์ ๊ฒฝ์ฐ ํด๋ฌ์คํฐ์ ํ์ํ ๋ฆฌ์์ค๋ฅผ ๊ณ์ฐํ๋ ๊ฒ์ ๋งค์ฐ ์ฝ์ต๋๋ค. ๊ณต์์ด ์๊ณ ์ฐ๊ตฌ๊ฐ ๊ฐ๋ฅํฉ๋๋ค. ์ฝํ CPU๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ์๋ Numa๊ฐ ๋ฌด์์ธ์ง ์์๋ด๊ธฐ ์ํด ๋ช ๊ฐ์ง ์ฑ๋ฅ ํ ์คํธ๋ฅผ ์คํํด์ผ ํ์ง๋ง ์ฌ์ ํ Rook๋ณด๋ค ์ฝ์ต๋๋ค.
Rook์ ๊ฒฝ์ฐ ๊ณ์ฐํ ์ ์๋ ๋ฉ๋ชจ๋ฆฌ ์ ํ ์ธ์๋ CPU ์ ํ ์ค์ ์ ๋ํ ์ง๋ฌธ์ด ์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ฌ๊ธฐ์ ์ฑ๋ฅ ํ ์คํธ๋ฅผ ์ด์ฌํ ํด์ผ ํฉ๋๋ค. ์ ํ์ ๋ฎ์ถ๋ฉด ํด๋ฌ์คํฐ ์๋๊ฐ ๋๋ ค์ง๊ณ , unlim์ ์ค์ ํ๋ฉด ์ฌ์กฐ์ ์ค์ CPU ์ฌ์ฉ๋์ด ํ์ฑํ๋์ด Kubernetes์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋์ ์ํฅ์ ๋ฏธ์นฉ๋๋ค.
๋คํธ์ํน ๋ฌธ์ v1
ceph์ ๊ฒฝ์ฐ 2x10GB ๋คํธ์ํฌ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ํ๋๋ ํด๋ผ์ด์ธํธ ํธ๋ํฝ์ฉ์ด๊ณ ๋ค๋ฅธ ํ๋๋ ceph ์๋น์ค ์๊ตฌ ์ฌํญ(์ฌ์กฐ์ )์ฉ์ ๋๋ค. ๋ฒ ์ด๋ฉํ์์ ceph๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ์ด ๋ถํ ์ ์ฝ๊ฒ ๊ตฌ์ฑ๋ฉ๋๋ค. Rook์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ๋ชจ๋ ํด๋ฌ์คํฐ ๊ตฌ์ฑ์ด ๋ ๊ฐ์ ์๋ก ๋ค๋ฅธ ๋คํธ์ํฌ๋ฅผ ํฌ๋์ ๊ณต๊ธํ ์ ์๋ ๊ฒ์ ์๋๊ธฐ ๋๋ฌธ์ ๋คํธ์ํฌ๋ณ๋ก ๋ถํ ํ๋ฉด ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค. .
๋คํธ์ํน ๋ฌธ์ v2
๋คํธ์ํฌ ๋ถ๋ฆฌ๋ฅผ ๊ฑฐ๋ถํ๋ฉด ์ฌ์กฐ์ ์ ceph ํธ๋ํฝ์ผ๋ก ์ธํด ์ ์ฒด ์ฑ๋์ด ๋งํ๊ณ kubernetes์ ์ ํ๋ฆฌ์ผ์ด์ ์ด ๋๋ ค์ง๊ฑฐ๋ ์ถฉ๋ํ๊ฒ ๋ฉ๋๋ค. Ceph ์ฌ์กฐ์ ์๋๋ฅผ ์ค์ผ ์ ์์ง๋ง ์ฌ์กฐ์ ๊ธฐ๊ฐ์ด ๊ธธ์ด์ง๋ฉด ๋ ๋ฒ์งธ ๋ ธ๋๊ฐ ๋์คํฌ๋ OOM์ ํตํด ํด๋ฌ์คํฐ์์ ๋จ์ด์ง ์ํ์ด ๋์์ง๊ณ ์ด๋ฏธ ํด๋ฌ์คํฐ์ ๋ํด ์ฝ๊ธฐ ์ ์ฉ์ด ๋ณด์ฅ๋ฉ๋๋ค.
๊ธด ์ฌ์กฐ์ - ๊ธด ์ ํ๋ฆฌ์ผ์ด์ ์ง์ฐ
Ceph์ ๊ฒ์๋ฌผ์์ ์ธ์ฉํฉ๋๋ค. ์ฌํด์ ํด๋ถํ.
ํด๋ฌ์คํฐ ์ฑ๋ฅ ํ ์คํธ:
4KB ํฌ๊ธฐ์ ์ฐ๊ธฐ ์์ ์๋ 1ms๊ฐ ๊ฑธ๋ฆฌ๊ณ ์ฑ๋ฅ์ 1000์ค๋ ๋์์ ์ด๋น 1 ์์ ์ ๋๋ค.
4MB(๊ฐ์ฒด ํฌ๊ธฐ) ์์ ์๋ 22ms๊ฐ ๊ฑธ๋ฆฌ๊ณ ์ฑ๋ฅ์ 45์์ /์ด์ ๋๋ค.
๊ฒฐ๊ณผ์ ์ผ๋ก ๋๋ฉ์ธ XNUMX๊ฐ ์ค ํ๋๊ฐ ์คํจํ๋ฉด ํด๋ฌ์คํฐ๋ ํ๋์ ์ฑ๋ฅ ์ ํ ์ํ์ ์๊ณ ํซ ๊ฐ์ฒด์ ์ ๋ฐ์ด ์ฌ๋ฌ ๋ฒ์ ์ ๋ถ์ฐ๋ ๋ค์ ์ฐ๊ธฐ ์์ ์ ์ ๋ฐ์ด ๊ฐ์ ๋ณต๊ตฌ๋ก ์์๋ฉ๋๋ค.
๊ฐ์ ๋ณต๊ตฌ ์๊ฐ์ ๋๋ต์ ์ผ๋ก ๊ณ์ฐํฉ๋๋ค(์ฑ๋ฅ์ด ์ ํ๋ ๊ฐ์ฒด์ ๋ํ ์ฐ๊ธฐ ์์ ).
๋จผ์ 4ms์ 22MB๋ฅผ ์ฝ๊ณ , 22ms์ ์ด ๋ค์, 1ms์ 4KB์ ์ค์ ๋ฐ์ดํฐ๋ฅผ ์๋๋ค. ํ์ค ์ฑ๋ฅ์ด 45ms์ผ ๋ SSD์ ์ ํ๋ ๊ฐ์ฒด์ ๋ํ ์ฐ๊ธฐ ์์ ๋น ์ด 1ms - ์ฑ๋ฅ์ด 45๋ฐฐ ๊ฐ์ํ์ต๋๋ค.
์ฑ๋ฅ์ด ์ ํ๋ ๊ฐ์ฒด์ ๋น์จ์ด ๋์์๋ก ๋ชจ๋ ๊ฒ์ด ๋ ๋๋น ์ง๋๋ค.
ํด๋ฌ์คํฐ๊ฐ ์ฌ๋ฐ๋ฅด๊ฒ ์๋ํ๋ ค๋ฉด ์ฌ์กฐ์ ์๋๊ฐ ๋งค์ฐ ์ค์ํฉ๋๋ค.
ceph์ ๋ํ ํน์ ์๋ฒ ์ค์
ceph์๋ ํน์ ํธ์คํธ ์กฐ์ ์ด ํ์ํ ์ ์์ต๋๋ค.
์: sysctl ์ค์ ๋ฐ ๋์ผํ JumboFrame, ์ด๋ฌํ ์ค์ ์ค ์ผ๋ถ๋ ํ์ด๋ก๋์ ๋ถ์ ์ ์ธ ์ํฅ์ ๋ฏธ์น ์ ์์ต๋๋ค.
Rook์ ์ค์ ํ์์ฑ์ ์ฌ์ ํ โโ์๋ฌธ์ ์ฌ์ง๊ฐ ์์ต๋๋ค.
ํด๋ผ์ฐ๋์ ์๋ ๊ฒฝ์ฐ ํด๋ผ์ฐ๋ ๊ณต๊ธ์๋ก๋ถํฐ ์คํ ๋ฆฌ์ง๋ฅผ ์ป์ ์ ์์ด ํจ์ฌ ๋ ํธ๋ฆฌํฉ๋๋ค.
์์ฒด ์๋ฒ๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ kubernetes ์์ด ceph๋ฅผ ๊ด๋ฆฌํ๋ ๊ฒ์ด ๋ ํธ๋ฆฌํ ๊ฒ์ ๋๋ค.
์ ๋ ดํ ํธ์คํ ์ ์ฒด์์ ์๋ฒ๋ฅผ ์๋ํ์๋์? ๊ทธ๋ฌ๋ฉด ๋คํธ์ํฌ, ์ง์ฐ ๋ฐ ๋์ญํญ์ ๋ํด ๋ง์ ์ฆ๊ฑฐ์์ ๋๋ฆด ์ ์์ผ๋ฉฐ ์ด๋ ๋ถ๋ช ํ ceph์ ๋ถ์ ์ ์ธ ์ํฅ์ ๋ฏธ์นฉ๋๋ค.
์ด๊ณ : ์ฟ ๋ฒ๋ ํ ๋ฅผ ๊ตฌํํ๋ ๊ฒ๊ณผ ์คํ ๋ฆฌ์ง๋ฅผ ๊ตฌํํ๋ ๊ฒ์ ์ ๋ ฅ๊ณผ ์๋ฃจ์ ์ต์ ์ด ์๋ก ๋ค๋ฅธ ์๋ก ๋ค๋ฅธ ์์ ์ ๋๋ค. ๋์ ํผํฉํ๋ ๊ฒ์ ๋ ์ค ํ๋๋ฅผ ์ํด ์ํํ ์ ์๋ ์ ์ถฉ์์ ๋ง๋๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. ์ค๊ณ ๋จ๊ณ์์๋ ์ด๋ฌํ ์๋ฃจ์ ์ ๊ฒฐํฉํ๋ ๊ฒ์ ๋งค์ฐ ์ด๋ ค์ธ ๊ฒ์ด๋ฉฐ ์์ง ์๋ ๊ธฐ๊ฐ์ด ์์ต๋๋ค.
์ฐธ๊ณ ๋ฌธํ :
์ถ์ฒ : habr.com