Western Digital์€ ์˜์—ญ ๋“œ๋ผ์ด๋ธŒ๋ฅผ ์œ„ํ•œ ํŠน์ˆ˜ Zonefs ํŒŒ์ผ ์‹œ์Šคํ…œ์„ ๋ฐœํ‘œํ–ˆ์Šต๋‹ˆ๋‹ค.

Western Digital์˜ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ ์ด์‚ฌ ะฟั€ะตะดะปะพะถะธะป Linux ์ปค๋„ ๊ฐœ๋ฐœ์ž ๋ฉ”์ผ๋ง ๋ฆฌ์ŠคํŠธ์—๋Š” Zonefs๋ผ๋Š” ์ƒˆ๋กœ์šด ํŒŒ์ผ ์‹œ์Šคํ…œ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ตฌ์—ญํ™”๋œ ์ €์žฅ ์žฅ์น˜. Zonefs๋Š” ๋“œ๋ผ์ด๋ธŒ์˜ ๊ฐ ์˜์—ญ์„ ์„นํ„ฐ ๋ฐ ๋ธ”๋ก ์ˆ˜์ค€ ์กฐ์ž‘ ์—†์ด ์›์‹œ ๋ชจ๋“œ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ณ„๋„์˜ ํŒŒ์ผ๊ณผ ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค.

Zonefs๋Š” POSIX ํ˜ธํ™˜ FS๊ฐ€ ์•„๋‹ˆ๋ฉฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ioctl์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ธ”๋ก ์žฅ์น˜์— ์ง์ ‘ ์•ก์„ธ์Šคํ•˜๋Š” ๋Œ€์‹  ํŒŒ์ผ API๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ—ˆ์šฉํ•˜๋Š” ์ƒ๋‹นํžˆ ์ข์€ ๋ฒ”์œ„๋กœ ์ œํ•œ๋ฉ๋‹ˆ๋‹ค. Zone ๊ด€๋ จ ํŒŒ์ผ์€ ํŒŒ์ผ ๋๋ถ€ํ„ฐ ์ˆœ์ฐจ์  ์“ฐ๊ธฐ ์ž‘์—…์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค(์ถ”๊ฐ€ ๋ชจ๋“œ ์“ฐ๊ธฐ).

Zonefs์—์„œ ์ œ๊ณตํ•˜๋Š” ํŒŒ์ผ์€ ํ•˜๋‚˜์˜ ํŒŒ์ผ - ํ•˜๋‚˜์˜ ์ €์žฅ ์˜์—ญ ๊ฐœ๋…์—์„œ ์‹œ์ž‘ํ•˜์—ฌ LSM(๋กœ๊ทธ ๊ตฌ์กฐ ๋ณ‘ํ•ฉ) ๋กœ๊ทธ ํ˜•ํƒœ์˜ ์ €์žฅ ๊ตฌ์กฐ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์˜์—ญํ™”๋œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋“œ๋ผ์ด๋ธŒ ์œ„์— ๋ฐฐ์น˜ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด RocksDB ๋ฐ LevelDB ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—๋Š” ์œ ์‚ฌํ•œ ๊ตฌ์กฐ๊ฐ€ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ œ์•ˆ๋œ ์ ‘๊ทผ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜๋ฉด ์›๋ž˜ ๋ธ”๋ก ์žฅ์น˜๊ฐ€ ์•„๋‹Œ ํŒŒ์ผ์„ ์กฐ์ž‘ํ•˜๋„๋ก ์„ค๊ณ„๋œ ์ฝ”๋“œ๋ฅผ ํฌํŒ…ํ•˜๋Š” ๋น„์šฉ์„ ์ค„์ผ ์ˆ˜ ์žˆ์„ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ C ์ด์™ธ์˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋กœ ๋œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์˜์—ญ ๋“œ๋ผ์ด๋ธŒ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ•˜์œ„ ์ˆ˜์ค€ ์ž‘์—…์„ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ตฌ์—ญํ™”๋œ ๋“œ๋ผ์ด๋ธŒ ์•„๋ž˜ ๋ฌต์‹œ์  ์žฅ์น˜๊ฐ€ ์ผœ์ง„ ์ƒํƒœ ํ•˜๋“œ ์ž๊ธฐ ๋””์Šคํฌ ๋˜๋Š” NVMe SSD, ๋ธ”๋ก ๋˜๋Š” ์„นํ„ฐ์˜ ๊ทธ๋ฃน์„ ๊ตฌ์„ฑํ•˜๋Š” ์˜์—ญ์œผ๋กœ ๋ถ„ํ• ๋˜์–ด ์ „์ฒด ๋ธ”๋ก ๊ทธ๋ฃน์„ ์—…๋ฐ์ดํŠธํ•˜๋ฉด์„œ ์ˆœ์ฐจ์ ์ธ ๋ฐ์ดํ„ฐ ์ถ”๊ฐ€๋งŒ ํ—ˆ์šฉ๋˜๋Š” ์ €์žฅ ๊ณต๊ฐ„์ž…๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, ๋…นํ™” ์˜์—ญ ์ง€์ •์€ ํƒ€์ผ์‹ ์ž๊ธฐ ๋…นํ™” ๊ธฐ๋Šฅ์ด ์žˆ๋Š” ์žฅ์น˜์—์„œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค(์— ์ง„์—ด ์ž๊ธฐ ๊ธฐ๋ก, SMR), ํŠธ๋ž™ ํญ์ด ์ž๊ธฐ ํ—ค๋“œ์˜ ํญ๋ณด๋‹ค ์ž‘๊ณ , ์ธ์ ‘ํ•œ ํŠธ๋ž™์˜ ๋ถ€๋ถ„์ ์ธ ์ค‘์ฒฉ์œผ๋กœ ๊ธฐ๋ก์ด ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค. ๋ฎ์–ด์“ฐ๋ฉด ์ „์ฒด ํŠธ๋ž™ ๊ทธ๋ฃน์„ ๋ฎ์–ด์จ์•ผ ํ•ฉ๋‹ˆ๋‹ค. SSD ๋“œ๋ผ์ด๋ธŒ์˜ ๊ฒฝ์šฐ ์ฒ˜์Œ์—๋Š” ์˜ˆ๋น„ ๋ฐ์ดํ„ฐ ์ง€์šฐ๊ธฐ์™€ ํ•จ๊ป˜ ์ˆœ์ฐจ์  ์“ฐ๊ธฐ ์ž‘์—…์— ๋ฐ”์ธ๋”ฉ๋˜์ง€๋งŒ ์ด๋Ÿฌํ•œ ์ž‘์—…์€ ์ปจํŠธ๋กค๋Ÿฌ ์ˆ˜์ค€๊ณผ FTL(Flash Translation Layer) ๊ณ„์ธต์— ์ˆจ๊ฒจ์ ธ ์žˆ์Šต๋‹ˆ๋‹ค. ํŠน์ • ์œ ํ˜•์˜ ๋กœ๋“œ์— ๋Œ€ํ•œ ํšจ์œจ์„ฑ์„ ๋†’์ด๊ธฐ ์œ„ํ•ด NVMe ์กฐ์ง์€ FTL ๊ณ„์ธต์„ ์šฐํšŒํ•˜์—ฌ ์˜์—ญ์— ์ง์ ‘ ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋Š” ZNS(Zoned Namespaces) ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ํ‘œ์ค€ํ™”ํ–ˆ์Šต๋‹ˆ๋‹ค.

Western Digital์€ ์˜์—ญ ๋“œ๋ผ์ด๋ธŒ๋ฅผ ์œ„ํ•œ ํŠน์ˆ˜ Zonefs ํŒŒ์ผ ์‹œ์Šคํ…œ์„ ๋ฐœํ‘œํ–ˆ์Šต๋‹ˆ๋‹ค.

์ปค๋„ 4.10 ์ดํ›„ Linux์—์„œ ์˜์—ญํ™”๋œ ํ•˜๋“œ ๋“œ๋ผ์ด๋ธŒ์šฉ ์ œ๊ณต ZBC(SCSI) ๋ฐ ZAC(ATA) ๋ธ”๋ก ์žฅ์น˜, ๊ทธ๋ฆฌ๊ณ  ๋ฆด๋ฆฌ์Šค 4.13๋ถ€ํ„ฐ dm-zoned ๋ชจ๋“ˆ์ด ์ถ”๊ฐ€๋˜์–ด ์˜์—ญํ™”๋œ ๋“œ๋ผ์ด๋ธŒ๋ฅผ ์ผ๋ฐ˜ ๋ธ”๋ก ์žฅ์น˜๋กœ ๋‚˜ํƒ€๋‚ด๋ฉฐ ์ž‘์—… ์ค‘์— ์ ์šฉ๋˜๋Š” ์“ฐ๊ธฐ ์ œํ•œ์„ ์ˆจ๊น๋‹ˆ๋‹ค. ํŒŒ์ผ ์‹œ์Šคํ…œ ์ˆ˜์ค€์—์„œ ์˜์—ญ ์ง€์ •์— ๋Œ€ํ•œ ์ง€์›์€ ์ด๋ฏธ F2FS ํŒŒ์ผ ์‹œ์Šคํ…œ์— ํ†ตํ•ฉ๋˜์—ˆ์œผ๋ฉฐ Btrfs ํŒŒ์ผ ์‹œ์Šคํ…œ์šฉ ํŒจ์น˜ ์„ธํŠธ๊ฐ€ ๊ฐœ๋ฐœ ์ค‘์ž…๋‹ˆ๋‹ค. ์˜์—ญ ์ง€์ • ๋“œ๋ผ์ด๋ธŒ์— ๋Œ€ํ•œ ์ ์‘์€ CoW(๋ณต์‚ฌ๋ณธ -์“ฐ๊ธฐ) ๋ชจ๋“œ.
์˜์—ญํ™”๋œ ๋“œ๋ผ์ด๋ธŒ๋ฅผ ํ†ตํ•œ Ext4 ๋ฐ XFS ์ž‘๋™ ๋ฐฐ์—ด๋  ์ˆ˜ ์žˆ๋‹ค dm-zone์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ํŒŒ์ผ ์‹œ์Šคํ…œ์˜ ๋ณ€ํ™˜์„ ๋‹จ์ˆœํ™”ํ•˜๊ธฐ ์œ„ํ•ด ํŒŒ์ผ์— ๋Œ€ํ•œ ๋ฌด์ž‘์œ„ ์“ฐ๊ธฐ ์ž‘์—…์„ ์ˆœ์ฐจ ์“ฐ๊ธฐ ์ž‘์—… ์ŠคํŠธ๋ฆผ์œผ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ZBD ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ์ œ์•ˆ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

Western Digital์€ ์˜์—ญ ๋“œ๋ผ์ด๋ธŒ๋ฅผ ์œ„ํ•œ ํŠน์ˆ˜ Zonefs ํŒŒ์ผ ์‹œ์Šคํ…œ์„ ๋ฐœํ‘œํ–ˆ์Šต๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

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