dRAID๋ฅผ ์ง€์›ํ•˜๋Š” OpenZFS 2.1 ์ถœ์‹œ

Linux ๋ฐ FreeBSD์šฉ ZFS ํŒŒ์ผ ์‹œ์Šคํ…œ ๊ตฌํ˜„์„ ๊ฐœ๋ฐœํ•˜๋Š” OpenZFS 2.1 ํ”„๋กœ์ ํŠธ ๋ฆด๋ฆฌ์Šค๊ฐ€ ๋ฐœํ‘œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ํ”„๋กœ์ ํŠธ๋Š” "ZFS on Linux"๋กœ ์•Œ๋ ค์ง€๊ฒŒ ๋˜์—ˆ์œผ๋ฉฐ ์ด์ „์—๋Š” Linux ์ปค๋„์šฉ ๋ชจ๋“ˆ ๊ฐœ๋ฐœ๋กœ ์ œํ•œ๋˜์—ˆ์œผ๋‚˜ ์ง€์›์„ ์ด๋™ํ•œ ํ›„ FreeBSD๊ฐ€ OpenZFS์˜ ์ฃผ์š” ๊ตฌํ˜„์œผ๋กœ ์ธ์‹๋˜์–ด ์ด๋ฆ„์— Linux๊ฐ€ ์–ธ๊ธ‰๋˜์ง€ ์•Š๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

OpenZFS๋Š” 3.10๋ถ€ํ„ฐ 5.13๊นŒ์ง€์˜ Linux ์ปค๋„๊ณผ 12.2-RELEASE๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๋Š” ๋ชจ๋“  FreeBSD ๋ถ„๊ธฐ์—์„œ ํ…Œ์ŠคํŠธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ฝ”๋“œ๋Š” ๋ฌด๋ฃŒ CDDL ๋ผ์ด์„ผ์Šค์— ๋”ฐ๋ผ ๋ฐฐํฌ๋ฉ๋‹ˆ๋‹ค. OpenZFS๋Š” ์ด๋ฏธ FreeBSD์—์„œ ์‚ฌ์šฉ๋˜๊ณ  ์žˆ์œผ๋ฉฐ Debian, Ubuntu, Gentoo, Sabayon Linux ๋ฐ ALT Linux ๋ฐฐํฌํŒ์— ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ƒˆ๋กœ์šด ๋ฒ„์ „์˜ ํŒจํ‚ค์ง€๋Š” Debian, Ubuntu, Fedora, RHEL/CentOS๋ฅผ ํฌํ•จํ•œ ์ฃผ์š” Linux ๋ฐฐํฌํŒ์šฉ์œผ๋กœ ๊ณง ์ค€๋น„๋  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค.

OpenZFS๋Š” ํŒŒ์ผ ์‹œ์Šคํ…œ ๋ฐ ๋ณผ๋ฅจ ๊ด€๋ฆฌ์ž์™€ ๊ด€๋ จ๋œ ZFS ๊ตฌ์„ฑ ์š”์†Œ ๊ตฌํ˜„์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ํŠนํžˆ SPA(Storage Pool Allocator), DMU(Data Management Unit), ZVOL(ZFS Emulated Volume) ๋ฐ ZPL(ZFS POSIX Layer) ๊ตฌ์„ฑ ์š”์†Œ๊ฐ€ ๊ตฌํ˜„๋ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ์ด ํ”„๋กœ์ ํŠธ๋Š” ZFS๋ฅผ Lustre ํด๋Ÿฌ์Šคํ„ฐ ํŒŒ์ผ ์‹œ์Šคํ…œ์˜ ๋ฐฑ์—”๋“œ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ ์ž‘์—…์€ OpenSolaris ํ”„๋กœ์ ํŠธ์—์„œ ๊ฐ€์ ธ์˜จ ์›๋ณธ ZFS ์ฝ”๋“œ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋ฉฐ Illumos ์ปค๋ฎค๋‹ˆํ‹ฐ์˜ ๊ฐœ์„  ์‚ฌํ•ญ๊ณผ ์ˆ˜์ • ์‚ฌํ•ญ์„ ํ†ตํ•ด ํ™•์žฅ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ํ”„๋กœ์ ํŠธ๋Š” ๋ฏธ๊ตญ ์—๋„ˆ์ง€๋ถ€์™€์˜ ๊ณ„์•ฝ์— ๋”ฐ๋ผ ๋ฆฌ๋ฒ„๋ชจ์–ด ๊ตญ๋ฆฝ ์—ฐ๊ตฌ์†Œ ์ง์›์˜ ์ฐธ์—ฌ๋กœ ๊ฐœ๋ฐœ๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์ฝ”๋“œ๋Š” GPLv2์™€ ํ˜ธํ™˜๋˜์ง€ ์•Š๋Š” ๋ฌด๋ฃŒ CDDL ๋ผ์ด์„ผ์Šค์— ๋”ฐ๋ผ ๋ฐฐํฌ๋˜๋ฉฐ, GPLv2์™€ CDDL ๋ผ์ด์„ผ์Šค์— ๋”ฐ๋ผ ์ฝ”๋“œ๋ฅผ ํ˜ผํ•ฉํ•˜๋Š” ๊ฒƒ์€ ํ—ˆ์šฉ๋˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— OpenZFS๋ฅผ Linux ์ปค๋„์˜ ์ฃผ์š” ๋ถ„๊ธฐ๋กœ ํ†ตํ•ฉํ•˜๋Š” ๊ฒƒ์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ผ์ด์„ผ์Šค ๋น„ํ˜ธํ™˜์„ฑ์„ ํ”ผํ•˜๊ธฐ ์œ„ํ•ด ์ปค๋„๊ณผ ๋ณ„๋„๋กœ ์ œ๊ณต๋˜๋Š” ๋ณ„๋„๋กœ ๋‹ค์šด๋กœ๋“œ ๊ฐ€๋Šฅํ•œ ๋ชจ๋“ˆ๋กœ CDDL ๋ผ์ด์„ผ์Šค์— ๋”ฐ๋ผ ์ „์ฒด ์ œํ’ˆ์„ ๋ฐฐํฌํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. OpenZFS ์ฝ”๋“œ๋ฒ ์ด์Šค์˜ ์•ˆ์ •์„ฑ์€ ๋‹ค๋ฅธ Linux์šฉ FS์™€ ๋น„๊ตํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์œผ๋กœ ํ‰๊ฐ€๋ฉ๋‹ˆ๋‹ค.

์ฃผ์š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ :

  • ํ•ซ ์ŠคํŽ˜์–ด์šฉ ๋ถ„์‚ฐ ๋ธ”๋ก ์ฒ˜๋ฆฌ๊ฐ€ ํ†ตํ•ฉ๋œ RAIDZ์˜ ๋ณ€ํ˜•์ธ dRAID(Distributed Spare RAID) ๊ธฐ์ˆ ์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. dRAID๋Š” RAIDZ์˜ ๋ชจ๋“  ์žฅ์ ์„ ์ƒ์†ํ•˜์ง€๋งŒ ์Šคํ† ๋ฆฌ์ง€ ๋ฆฌ์‹ค๋ฒ„๋ง ์†๋„์™€ ์–ด๋ ˆ์ด์˜ ์ค‘๋ณต์„ฑ ๋ณต์› ์†๋„๋ฅผ ํฌ๊ฒŒ ๋†’์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ€์ƒ ์Šคํ† ๋ฆฌ์ง€ dRAID๋Š” ์—ฌ๋Ÿฌ ๋‚ด๋ถ€ RAIDZ ๊ทธ๋ฃน์œผ๋กœ ๊ตฌ์„ฑ๋˜๋ฉฐ ๊ฐ ๊ทธ๋ฃน์—๋Š” ๋ฐ์ดํ„ฐ ์ €์žฅ ์žฅ์น˜์™€ ํŒจ๋ฆฌํ‹ฐ ๋ธ”๋ก ์ €์žฅ ์žฅ์น˜๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ทธ๋ฃน์€ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋””์Šคํฌ ๋Œ€์—ญํญ์„ ์ตœ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ๋ชจ๋“  ๋“œ๋ผ์ด๋ธŒ์— ๋ถ„์‚ฐ๋ฉ๋‹ˆ๋‹ค. ๋ณ„๋„์˜ ํ•ซ ๋ณต๊ตฌ ๋“œ๋ผ์ด๋ธŒ ๋Œ€์‹  dRAID๋Š” ์–ด๋ ˆ์ด์˜ ๋ชจ๋“  ๋“œ๋ผ์ด๋ธŒ์— ํ•ซ ๋ณต๊ตฌ ๋ธ”๋ก์„ ๋…ผ๋ฆฌ์ ์œผ๋กœ ๋ฐฐํฌํ•˜๋Š” ๊ฐœ๋…์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
    dRAID๋ฅผ ์ง€์›ํ•˜๋Š” OpenZFS 2.1 ์ถœ์‹œ
  • ๊ด€๋ฆฌ์ž๊ฐ€ ํ’€์—์„œ ํ™œ์„ฑํ™”ํ•ด์•ผ ํ•˜๋Š” ๊ธฐ๋Šฅ ์„ธํŠธ๋ฅผ ์ˆœ์„œ๋Œ€๋กœ ์„ ํƒํ•  ์ˆ˜ ์žˆ๋„๋ก "ํ˜ธํ™˜์„ฑ" ์†์„ฑ("zpool create -o ํ˜ธํ™˜์„ฑ=off|legacy|file[,file...] pool vdev")์„ ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค. ํœด๋Œ€์šฉ ํ’€์„ ์ƒ์„ฑํ•˜๊ณ  ๋‹ค์–‘ํ•œ ๋ฒ„์ „์˜ OpenZFS์™€ ๋‹ค์–‘ํ•œ ํ”Œ๋žซํผ ํ’€ ๊ฐ„์˜ ํ˜ธํ™˜์„ฑ์„ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค.
  • ํ’€ ์šด์˜์— ๋Œ€ํ•œ ํ†ต๊ณ„๋ฅผ InfluxDB DBMS ํ˜•์‹์œผ๋กœ ์ €์žฅํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ด๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์‹œ๊ณ„์—ด(์ง€์ •๋œ ๊ฐ„๊ฒฉ์œผ๋กœ ๋งค๊ฐœ๋ณ€์ˆ˜ ๊ฐ’์˜ ์กฐ๊ฐ) ํ˜•์‹์œผ๋กœ ์ €์žฅ, ๋ถ„์„ ๋ฐ ์กฐ์ž‘ํ•˜๋Š” ๋ฐ ์ตœ์ ํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. InfluxDB ํ˜•์‹์œผ๋กœ ๋‚ด๋ณด๋‚ด๋ ค๋ฉด "zpool influxdb" ๋ช…๋ น์ด ์ œ์•ˆ๋ฉ๋‹ˆ๋‹ค.
  • ํ•ซ ์ถ”๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ ๋ฐ CPU์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ์ƒˆ๋กœ์šด ๋ช…๋ น ๋ฐ ์˜ต์…˜:
    • "zpool create -u" - ์ž๋™ ๋งˆ์šดํŠธ๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.
    • "zpool History -i" - ๊ฐ ๋ช…๋ น์˜ ์‹คํ–‰ ๊ธฐ๊ฐ„์„ ์ž‘์—… ๊ธฐ๋ก์— ๋ฐ˜์˜ํ•ฉ๋‹ˆ๋‹ค.
    • "zpool status" - ๋ธ”๋ก ํฌ๊ธฐ๊ฐ€ ์ตœ์ ์ด ์•„๋‹Œ ๋””์Šคํฌ์— ๋Œ€ํ•œ ๊ฒฝ๊ณ  ๋ฉ”์‹œ์ง€๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • "zfs send โ€”skip-missing|-s" โ€” ๋ณต์ œ๋ฅผ ์œ„ํ•ด ์ŠคํŠธ๋ฆผ์„ ๋ณด๋‚ผ ๋•Œ ๋ˆ„๋ฝ๋œ ์Šค๋ƒ…์ƒท์„ ๋ฌด์‹œํ•ฉ๋‹ˆ๋‹ค.
    • "zfs rename -u" - ๋‹ค์‹œ ๋งˆ์šดํŠธํ•˜์ง€ ์•Š๊ณ  ํŒŒ์ผ ์‹œ์Šคํ…œ์˜ ์ด๋ฆ„์„ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.
    • Arcstat์—์„œ๋Š” L2ARC ํ†ต๊ณ„์— ๋Œ€ํ•œ ์ง€์›์„ ์ถ”๊ฐ€ํ•˜๊ณ  "-a"(๋ชจ๋‘) ๋ฐ "-p"(๊ตฌ๋ฌธ ๋ถ„์„ ๊ฐ€๋Šฅ) ์˜ต์…˜์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ์ตœ์ ํ™”:
    • ๋Œ€ํ™”ํ˜• I/O ์„ฑ๋Šฅ์ด ํ–ฅ์ƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • ๋ณ‘๋ ฌ ๋ฐ์ดํ„ฐ ์•ก์„ธ์Šค์™€ ๊ด€๋ จ๋œ ์›Œํฌ๋กœ๋“œ์— ๋Œ€ํ•œ ํ”„๋ฆฌํŽ˜์น˜๊ฐ€ ๊ฐ€์†ํ™”๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • ์ž ๊ธˆ ๊ฒฝํ•ฉ์„ ์ค„์—ฌ ํ™•์žฅ์„ฑ์„ ํ–ฅ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.
    • ํ’€ ๊ฐ€์ ธ์˜ค๊ธฐ ์‹œ๊ฐ„์ด ๋‹จ์ถ•๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • ZIL ๋ธ”๋ก์˜ ์กฐ๊ฐํ™” ๊ฐ์†Œ.
    • ์žฌ๊ท€ ์ž‘์—…์˜ ์„ฑ๋Šฅ์ด ํ–ฅ์ƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • ํ–ฅ์ƒ๋œ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ.
    • ์ปค๋„ ๋ชจ๋“ˆ ๋กœ๋”ฉ์ด ๊ฐ€์†ํ™”๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€