์ผ๋ง ์ ์ค์ ์ด์ ์ค์ด๋ Ceph ํด๋ฌ์คํฐ์์, ๊ณ ๊ฐ์ ์์ฒญ์ผ๋ก OSD ํ๋๋ฅผ ์ ๊ฑฐํ๋๋ ์ผ์ด ๊ผฌ์ด๊ธฐ ์์ํ์ต๋๋ค.
์ฒ์์ ๋ณ์ผ ์๋ ์ค ์์์ด์. PG ๋ช ๊ฐ๊ฐ ์ ๊น degraded ๋จ๋๋, ๊ธ๋ฐฉ recovery ๋๊ฒ ์ง ์ถ์๋๋ฐ…
๊ณ์ HEALTH_WARN์ ์ฌ๋ผ์ง์ง ์์์ต๋๋ค.
HEALTH_WARN mon.b is low on available space; 1 pgs not deep-scrubbed in time; 1 pgs not scrubbed in time
[WRN] PG_NOT_DEEP_SCRUBBED: 1 pgs not deep-scrubbed since ...
[WRN] PG_NOT_SCRUBBED: 1 pgs not scrubbed since ...
ceph pg scrub, ceph pg deep-scrub ๋ช
๋ น ๋ค ๋ฃ์ด๋ด๋ ๋ฐ์ ์์.
scrub์ด ์ ๋๋๊น PG ์ํ๋ ๋๊น์ง clean์ผ๋ก ๋์๊ฐ์ง ์๊ณ , ๊ทธ๋ฅ โ๋ณต๊ตฌ ์คโ์ธ ์ฒ๋ง ํ๊ณ ์๋ ์ํ.
๐ฏ ์ด๋ ์๊ฒ ๋ ํต์ฌ ์ฌ์ค ํ๋!
scrub์ด recovery๋ ๊ฐ์ด ๋์๊ฐ์ง ์์ผ๋ฉด, Ceph์ ๋ณต๊ตฌ๊ฐ ์ ๋๋ฉ๋๋ค.
์ฐ๋ฆฌ๋ ๋ recovery = ๋ณต๊ตฌ๋ผ๊ณ ์๊ฐํ์์์? ๊ทผ๋ฐ scrub์ด ๋น ์ง recovery๋ ์ฌ์ค์ ๋ฐ์ชฝ์ง๋ฆฌ์
๋๋ค.
์ด๊ฑธ ๋ชฐ๋ผ์ ๋ฉฐ์น ๋์ “์ ์ ๋๋์ง?” ํ๋ฉด์ ๋ก๊ทธ๋ง ๋ค์ฌ๋ค๋ณด๊ณ ์์์ฃ …
๐งฉ ๋ฌธ์ ์ํฉ ์์ฝ
- osd.2 ์ ๊ฑฐ (์ฌ์ง์ด ์ ๋๋ก ์ ๊ฑฐํจ)
- ์ผ๋ถ PG๊ฐ ๋ค๋ฅธ OSD๋ก ์ฎ๊ฒจ๊ฐ๋ฉฐ recovery ์์
- ๋ช๋ช PG๋
degraded/recovering์ํ๋ก ๊ณ ์ scrub๋ช ๋ น ์๋์ผ๋ก ์ณ๋ ๋ฐ์ ์์- ๊ฒฝ๊ณ ๋ฉ์์ง๋ ์ ์ ๋์
๐งช ์์ธ ๋ถ์: scrub์ด ์ ๋์๊ฐ๋ ์ด์ ๋ค
1. PG ์ํ๋ถํฐ ํ์ธํด๋ณด์
ceph pg 1.0 query
scrub์ด ๋๋ ค๋ฉด ์ํ๊ฐ ๋ฐ๋์ active+clean์ด์ด์ผ ํฉ๋๋ค.
recovering, backfill, degraded ์ํ๋ฉด scrub์ ๋๊ธฐํ๊ฑฐ๋ ๋ฌด์๋จ.
“์๋ ๊ทธ๋ผ ์ธ์ scrubํ๋ผ๋ ๊ฑฐ์ง?” โ ์ด๊ฒ ๋ฐ๋ก ๋ ๋ฒ์งธ ์ฒดํฌํฌ์ธํธ์ ๋๋ค.
2. scrub ๊ฐ๋ฅํ ์๊ฐ๋๊ฐ ์๋์ง ํ์ธ
ceph config get osd osd_scrub_begin_hour
ceph config get osd osd_scrub_end_hour
์๋ฅผ ๋ค์ด, ์๋ฒฝ 2์~6์๋ก ์ค์ ๋ผ ์์ผ๋ฉด, ๊ทธ ์ธ ์๊ฐ์ ์๋ scrub๋ ๋ฌด์๋ฉ๋๋ค.
์ด๊ฒ ์๊ทผํ ๋ง์ด ๋งํ๋ ํฌ์ธํธ์ ๋๋ค.
3. recovery ์ค scrub์ด ๋งํ ์๋ ๊ฒฝ์ฐ
ceph config get osd osd_scrub_during_recovery
๊ธฐ๋ณธ๊ฐ์ false.
์ฆ, recovery๊ฐ ์งํ ์ค์ด๋ฉด scrub์ ์๋์ด๋ ์๋์ด๋ ์ ๋ถ ์ฐจ๋จ์ ๋๋ค.
โ ํด๊ฒฐ๋ฒ:
ceph config set osd osd_scrub_during_recovery true
์ด ์ค์ ์ ๋ฐ๊ฟ์ฃผ๋ ์๊ฐ, PG ์ํ๊ฐ ํ๋๋์ฉ clean์ผ๋ก ๋ฐ๋๊ธฐ ์์ํ์ต๋๋ค.
์ด๊ฒ ์ง์ง ํต์ฌ์ด์์ต๋๋ค.
4. PG ๋ด๋น OSD ์ํ๋ ์ฒดํฌ
ceph pg map 1.0
ํด๋น PG๋ฅผ ๋ด๋นํ๋ OSD๋ค์ด ๋ค up + in ์ํ์ธ์ง ํ์ธํ๊ณ ,
ceph osd perf, ceph osd df๋ก ์ํ๋ ๊ฐ์ด ๋ด์ฃผ์ธ์.
nearfull,slow,down์ด๋ฉด scrub ์ ๋์์..- latency ๋์ผ๋ฉด scrub ์ง์ฐ๋จ
๐ง ๋๋ฒ๊น ์ฉ scrub ๊ฐ์ ์คํ๋ ์์
์ ์ ๋ ๋๋ ๊ฐ์ ๋ก๋ ์คํ ๊ฐ๋ฅ: (scrub์ด ๋ ๋ ค๋ฉด recovery true ์ต์ ์ ์ผ์ค์ผ ํจ)
ceph tell pg 1.0 scrub
ceph tell pg 1.0 deep-scrub
๋จ, ์ด์ํ๊ฒฝ์์ ์ง์ง ์ง์ง ์กฐ์ฌํด์ ์จ์ผ ํฉ๋๋ค. ํ ์คํธ ํ๊ฒฝ์์ ๋จผ์ ํด๋ณด์ธ์.
โ ํต์ฌ ์ ๋ฆฌ
| ์ฒดํฌ ํญ๋ชฉ | ๊ผญ ํ์ธํ ๋ด์ฉ |
|---|---|
| PG ์ํ | active+clean์ธ์ง |
| scrub ์๊ฐ ์ ํ | ํน์ ์๊ฐ ์ธ์ ๋ฌด์๋จ |
| recovery ์ค scrub ํ์ฉ ์ฌ๋ถ | osd_scrub_during_recovery = true๋ก ์ค์ ํ์ |
| OSD ์ํ | up+in, slow/nearfull ์ฌ๋ถ ์ฒดํฌ |
| MON ๋์คํฌ ์ฌ์ | ๋ถ์กฑํ๋ฉด scrub ์ง์ฐ ๋ฐ์ |
| ๊ฐ์ scrub ์คํ | ๋๋ฒ๊น ๋ชฉ์ ์ผ ๋๋ง ์ ์คํ๊ฒ ์ฌ์ฉ |
๐ง ”๋ณต๊ตฌ ์ค”์ด๋ผ๋ ๋ง๋ง ๋ฏฟ์ง ๋ง์ธ์
Ceph์ด “๋ณต๊ตฌ ์ค”์ด๋ผ๊ณ ํด์ ์ง์ง๋ก ๋ณต๊ตฌ๊ฐ ์งํ ์ค์ด๋ผ๋ ๋ณด์ฅ์ ์์ต๋๋ค.
scrub์ด ๋ฉ์ถฐ ์์ผ๋ฉด recovery๋ ๊ทธ๋ฅ ๊ฒ๋ ๋ฟ, PG๋ ์ ๋ clean ์ํ๋ก ๋์์ค์ง ์์์.
์ด์ ์ค OSD๋ฅผ ์ถ๊ฐํ๊ฑฐ๋ ์ ๊ฑฐํ ์งํ, ๋ณต๊ตฌ๊ฐ ๋๋ฌ๋ค๊ณ ์๊ฐํ๋๋ฐ HEALTH_WARN์ด ๊ณ์ ๋จ์ ์๋ค๋ฉด?
๐ scrub์ด ๋งํ ์๋์ง ๊ผญ ํ์ธํ์ธ์.