Ji Yong Seong
Ji Yong Seong
SR TECHNICAL SPECIALIST

๐Ÿ“ข ํผ๋ธ”๋ฆญ ํ”„๋ฆฌ๋ทฐ: FUSE ๊ธฐ๋ฐ˜ BlobNFS ์„ฑ๋Šฅ ๋ฐ ํ™•์žฅ์„ฑ ํ–ฅ์ƒ

์ž‘์„ฑ์ž : niranja1890

์›๋ณธ : [Public Preview] Accelerating BlobNFS throughput & scale with FUSE for superior performance

Azure Blob Storage๋Š” BlobFuse๋ฅผ ํ†ตํ•ด ๋กœ์ปฌ ํŒŒ์ผ ์‹œ์Šคํ…œ์ฒ˜๋Ÿผ ๋งˆ์šดํŠธํ•˜๊ณ  ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. BlobFuse๋Š” Blob REST API๋ฅผ ์œ„ํ•œ FUSE ๊ธฐ๋ฐ˜ ๋“œ๋ผ์ด๋ฒ„๋กœ, AI/ML, HPC, ๋ถ„์„, ๋ฐฑ์—… ์›Œํฌ๋กœ๋“œ์— ์ ํ•ฉํ•œ ๋†’์€ ์ฒ˜๋ฆฌ๋Ÿ‰๊ณผ ๋กœ์ปฌ ์บ์‹ฑ, Azure Entra ID๋ฅผ ํ†ตํ•œ ๋ณด์•ˆ ํ†ตํ•ฉ ๋“ฑ์˜ ์žฅ์ ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

NFS 3.0 ํ”„๋กœํ† ์ฝœ ์ง€์› ๋˜๋Š” POSIX ์ค€์ˆ˜๊ฐ€ ํ•„์š”ํ•œ ๊ณ ๊ฐ์„ ์œ„ํ•ด, Azure Blob Storage๋Š” NFSv3(์ผ๋ช… BlobNFS)๋ฅผ ๋„ค์ดํ‹ฐ๋ธŒ๋กœ๋„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ๊ณ ๊ฐ์˜ ๋ ˆ๊ฑฐ์‹œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๋ณ€๊ฒฝ ์—†์ด Azure Blob Storage์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ค๋‹ˆ๋‹ค. BlobNFS๋Š” Linux NFS ํด๋ผ์ด์–ธํŠธ์™€ ๋‹น์‚ฌ์˜ AZNFS ๋งˆ์šดํŠธ ํ—ฌํผ ํŒจํ‚ค์ง€๋ฅผ ๊ฒฐํ•ฉํ•˜์—ฌ ์ ‘๊ทผ๋˜๋ฉฐ, ์ด๋Š” Blob Storage์˜ NFS ์—”๋“œํฌ์ธํŠธ์— ๋งˆ์šดํŠธํ•˜๊ณ  ์•ˆ์ •์ ์œผ๋กœ ์—ฐ๊ฒฐํ•˜๋Š” ๊ณผ์ •์„ ๊ฐ„์†Œํ™”ํ•ฉ๋‹ˆ๋‹ค. BlobNFS๋Š” NFS 3.0์—์„œ Azure Entra ID ๊ธฐ๋ฐ˜ ์ธ์ฆ์ด ์•„์ง ์ œ๊ณต๋˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์—, BlobNFS๋Š” ๊ฐ€์ƒ ๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•œ ์ ‘๊ทผ๋งŒ ์ง€์›ํ•œ๋‹ค๋Š” ์ ์— ์œ ์˜ํ•˜์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค.

์˜ค๋Š˜ BlobNFS์šฉ AZNFS(3.0)์˜ ์ƒˆ๋กœ์šด ์—…๋ฐ์ดํŠธ๊ฐ€ ๊ณต๊ฐœ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ BlobFuse๋ฅผ ๊ตฌ๋™ํ•˜๋Š” ๊ฒƒ๊ณผ ๋™์ผํ•œ libfuse3 ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ, ์„ฑ๋Šฅ๊ณผ ํ™•์žฅ์„ฑ ๋ฉด์—์„œ ์ƒ๋‹นํ•œ ๊ฐœ์„ ์ด ์ด๋ฃจ์–ด์กŒ์Šต๋‹ˆ๋‹ค. ์—…๋ฐ์ดํŠธ๋œ BlobNFS์šฉ AZNFS๋Š” ํ›จ์”ฌ ๋” ๋†’์€ ์ฒ˜๋ฆฌ๋Ÿ‰, ๋” ํฐ ํŒŒ์ผ ์ง€์›, ํ–ฅ์ƒ๋œ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ์„ฑ๋Šฅ, ๊ทธ๋ฆฌ๊ณ  ์‚ฌ์šฉ์ž ๊ทธ๋ฃน ์ œํ•œ ์ œ๊ฑฐ๋ฅผ ์ œ๊ณตํ•˜์—ฌ, ๋†’์€ ์„ฑ๋Šฅ์„ ์š”๊ตฌํ•˜๋Š” ์›Œํฌ๋กœ๋“œ์˜ ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค.

  • โšก ๊ฐ€์ƒ ๋จธ์‹  ์ฒ˜๋ฆฌ๋Ÿ‰ ๊ทน๋Œ€ํ™”: AZNFS๋Š” ์ด์ œ ์ตœ๋Œ€ 256๊ฐœ์˜ TCP ์—ฐ๊ฒฐ(๊ธฐ์กด ๋„ค์ดํ‹ฐ๋ธŒ NFS ํด๋ผ์ด์–ธํŠธ์—์„œ๋Š” 16๊ฐœ)์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค . ์ด๋ฅผ ํ†ตํ•ด ์ฒ˜๋ฆฌ๋Ÿ‰์ด VM NIC ๋Œ€์—ญํญ(๊ฐ€์ƒ ๋จธ์‹ ์˜ ๋„คํŠธ์›Œํฌ ์ธํ„ฐํŽ˜์ด์Šค ์นด๋“œ๊ฐ€ ์ œ๊ณตํ•˜๋Š” ์ตœ๋Œ€ ๋ฐ์ดํ„ฐ ์ „์†ก ์†๋„) ๋˜๋Š” Storage account๊ฐ€ ์ œ๊ณตํ•˜๋Š” ์ตœ๋Œ€ ํ•œ๋„๊นŒ์ง€ ๋„๋‹ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ธฐ๋Šฅ์€ HPC ์›Œํฌ๋กœ๋“œ์— ์œ ๋ฆฌํ•˜๋ฉฐ, ๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ์…‹ ์ž‘์—… ์‹œ ๋†’์€ ์ฒ˜๋ฆฌ๋Ÿ‰์„ ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ, ์†Œ์ˆ˜์˜ ๋ณ‘๋ ฌ ํŒŒ์ผ ์ฝ๊ธฐ/์“ฐ๊ธฐ ์ž‘์—…(4๊ฐœ ์ดํ•˜)๋งŒ์œผ๋กœ๋„, VM NIC ๋Œ€์—ญํญ์„ ์™„์ „ํžˆ ํฌํ™”์‹œํ‚ฌ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ด๋Š” ๋” ํฐ VM ์‚ฌ์ด์ฆˆ์—์„œ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค.
  • โšก ํ–ฅ์ƒ๋œ ์ฝ๊ธฐ/์“ฐ๊ธฐ ์†๋„: ์—…๋ฐ์ดํŠธ๋œ AZNFS ํด๋ผ์ด์–ธํŠธ๋Š” ์ฝ๊ธฐ ๋ฐ ์“ฐ๊ธฐ ์‹œ๋‚˜๋ฆฌ์˜ค์—์„œ ๋„ค์ดํ‹ฐ๋ธŒ NFS ํด๋ผ์ด์–ธํŠธ๋ณด๋‹ค ๋” ๋›ฐ์–ด๋‚œ ์„ฑ๋Šฅ์„ ๋ฐœํœ˜ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๋‹จ์ผ ํŒŒ์ผ ์ฝ๊ธฐ/์“ฐ๊ธฐ ์„ฑ๋Šฅ์€ ๊ฐ๊ฐ 5๋ฐฐ ๋ฐ 3๋ฐฐ ํ–ฅ์ƒ๋˜์—ˆ์œผ๋ฉฐ, ์ด๋Š” ๋ฐฑ์—… ํŒŒ์ผ์„ ์ฝ๊ณ  ์“ฐ๋Š” ๋ฐ ๋†’์€ ๋‹จ์ผ ํŒŒ์ผ ์ฒ˜๋ฆฌ๋Ÿ‰์ด ์š”๊ตฌ๋˜๋Š” ๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ฐฑ์—… ์ž‘์—…์— ์œ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ์„ฑ๋Šฅ ๋น„๊ต๋Š” ๋งํฌ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.
  • ๐Ÿšซ ์‚ฌ์šฉ์ž ๊ทธ๋ฃน ์ œํ•œ ์ œ๊ฑฐ: ๋กœ์ปฌ ์ธ์ฆ ์„œ๋ฒ„๋ฅผ ์‚ฌ์šฉํ•˜๋Š” Linux NFS ํด๋ผ์ด์–ธํŠธ๋Š” ์‚ฌ์šฉ์ž์˜ ์ตœ๋Œ€ 16๊ฐœ ๊ทธ๋ฃน์— ๋Œ€ํ•œ ์ ‘๊ทผ ๊ถŒํ•œ๋งŒ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ด๋Š” 16๊ฐœ๋ฅผ ์ดˆ๊ณผํ•˜๋Š” ๊ทธ๋ฃน์— ์†ํ•œ ์‚ฌ์šฉ์ž์˜ ๋ฆฌ์†Œ์Šค ์ ‘๊ทผ์„ ์ œํ•œํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฒˆ ์—…๋ฐ์ดํŠธ๋ฅผ ํ†ตํ•ด FUSE๊ฐ€ ๊ถŒํ•œ ๊ฒ€์‚ฌ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ฒŒ ๋˜์–ด, 16๊ฐœ ๊ทธ๋ฃน ์ œํ•œ์ด ์‚ฌ๋ผ์กŒ์Šต๋‹ˆ๋‹ค.
  • ๐Ÿ“ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ์ฟผ๋ฆฌ ์„ฑ๋Šฅ ํ–ฅ์ƒ: READDIR์€ ์ด์ œ ํ•œ ๋ฒˆ์˜ ํ˜ธ์ถœ๋กœ ๋” ๋งŽ์€ ๋””๋ ‰ํ„ฐ๋ฆฌ ํ•ญ๋ชฉ์„ ์ฟผ๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Linux ํด๋ผ์ด์–ธํŠธ๋Š” 1MB์˜ ์ œํ•œ์ด ์žˆ๋Š” ๋ฐ˜๋ฉด, ์—…๋ฐ์ดํŠธ๋œ AZNFS๋Š” ์ด์ œ ์ตœ๋Œ€ 3MB๊นŒ์ง€ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํŒŒ์ผ์ด ๋งŽ์€ ๊ณ ๊ฐ์€ ๋” ๋น ๋ฅธ ๋ชฉ๋ก ์กฐํšŒ ๋ฐ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ์ž‘์—…์„ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ง€์—ฐ ์‹œ๊ฐ„์ด ์ค„์–ด๋“ค๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์ด๋Š” ์ฒ˜๋ฆฌ ์ „์— ๋งŽ์€ ์ˆ˜์˜ ํŒŒ์ผ์— ๋Œ€ํ•œ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๋Š” ์ž‘์—…์ด ํ•„์š”๋กœ ํ•˜๋Š” EDA(์ „์ž ์„ค๊ณ„ ์ž๋™ํ™”) ๋ฐ HPC(๊ณ ์„ฑ๋Šฅ ์ปดํ“จํŒ…) ์›Œํฌ๋กœ๋“œ์— ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • ๐Ÿ—‚๏ธ ๋Œ€์šฉ๋Ÿ‰ ํŒŒ์ผ ํฌ๊ธฐ ์ง€์› (์ตœ๋Œ€ 5TB): ์ด๋ฒˆ ๋ฆด๋ฆฌ์Šค๋ฅผ ํ†ตํ•ด ์ˆœ์ฐจ์  ์“ฐ๊ธฐ ํŒจํ„ด์— ๋Œ€ํ•ด ๋” ํฐ ํŒŒ์ผ ํฌ๊ธฐ๋ฅผ ์ง€์›ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. AZNFS์—์„œ ๋” ํฐ ๋ธ”๋ก ํฌ๊ธฐ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋จ์— ๋”ฐ๋ผ, ์‚ฌ์šฉ์ž๋Š” ์ตœ๋Œ€ 5TB๊นŒ์ง€์˜ ๋Œ€์šฉ๋Ÿ‰ ํŒŒ์ผ์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Linux ํด๋ผ์ด์–ธํŠธ๋ฅผ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ, ์ตœ์ ์˜ ์กฐ๊ฑด์—์„œ๋„ ์ตœ๋Œ€ ํŒŒ์ผ ํฌ๊ธฐ๋Š” ์•ฝ 3TB๋กœ ์ œํ•œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. 3TB๋ฅผ ์ดˆ๊ณผํ•˜๋Š” ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ๋ฐ ์ฒดํฌํฌ์ธํŠธ ๋ฐ์ดํ„ฐ ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜๋Š” CAD ๋„๊ตฌ๋Š” ์ด๋ฒˆ ๊ฐœ์„ ์„ ํ†ตํ•˜์—ฌ ์žฅ์ ์„ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ ์ฐจํŠธ๋Š” ์—…๋ฐ์ดํŠธ๋œ AZNFS์™€ ๋„ค์ดํ‹ฐ๋ธŒ Linux ํด๋ผ์ด์–ธํŠธ ๊ฐ„์˜ ์„ฑ๋Šฅ์„ ๋น„๊ตํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋ฒค์น˜๋งˆํฌ ๊ฒฐ๊ณผ๋ฅผ ์ฐธ์กฐํ•˜์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค.

[ํ…Œ์ŠคํŠธ ํŒŒ๋ผ๋ฏธํ„ฐ]

  • VM: Standard D96ds v5
  • ํŒŒ์ผ ํฌ๊ธฐ: 100GB
  • Linux NFS๋Š” nconnect=16 ์„ค์ • ์‚ฌ์šฉ
  • Linux ์ปค๋„ ๋ฒ„์ „: 5.x.x
  • ํ…Œ์ŠคํŠธ ๋„๊ตฌ: dd ํ…Œ์ŠคํŠธ ์‚ฌ์šฉ

์ฐธ๊ณ : ํ•ด๋‹น VM์€ ์“ฐ๊ธฐ ์ฒ˜๋ฆฌ๋Ÿ‰๋ณด๋‹ค ์ฝ๊ธฐ ์ฒ˜๋ฆฌ๋Ÿ‰์ด ๋” ๋†’์Šต๋‹ˆ๋‹ค. ์—…๋ฐ์ดํŠธ๋œ AZNFS์˜ ๊ฒฝ์šฐ, 4๊ฐœ ์ด์ƒ์˜ ๋ณ‘๋ ฌ ํŒŒ์ผ ์ฝ๊ธฐ/์“ฐ๊ธฐ ์ž‘์—…๋ถ€ํ„ฐ๋Š” VM NIC ๋Œ€์—ญํญ์— ์˜ํ•ด ์ฒ˜๋ฆฌ๋Ÿ‰์ด ์ œํ•œ๋˜๊ฑฐ๋‚˜, ๊ทธ ์ด์ƒ์œผ๋กœ ํ™•์žฅ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

read throughput write throughput

๐Ÿ› ๏ธ ์‹œ์ž‘ํ•˜๊ธฐ

ํ”„๋ฆฌ๋ทฐ์— ๋“ฑ๋กํ•˜๋ ค๋ฉด ์ด ์–‘์‹์„ ์‚ฌ์šฉํ•˜์—ฌ ๋“ฑ๋กํ•ด ์ฃผ์„ธ์š”. ์ตœ์‹  ๋ฒ„์ „์˜ AZNFS๋ฅผ ์„ค์น˜ํ•˜๊ณ  ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋งํฌ๋ฅผ ์ฐธ๊ณ ํ•ด ์ฃผ์„ธ์š”. ๋ฌธ์˜ ์‚ฌํ•ญ์ด๋‚˜ ํ”ผ๋“œ๋ฐฑ์ด ์žˆ์œผ์‹  ๊ฒฝ์šฐ, aznfs@microsoft.com ์œผ๋กœ ์—ฐ๋ฝ ๋ถ€ํƒ ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

์ฐธ๊ณ  ๋ฌธ์„œ

[What is BlobFuse? - BlobFuse2 - Azure Storage Microsoft Learn](https://learn.microsoft.com/azure/storage/blobs/blobfuse2-what-is)

Network File System (NFS) 3.0 protocol support for Azure Blob Storage

Mount Blob Storage by using the Network File System (NFS) 3.0 protocol on Linux

Instructions to install and use latest version of AZNFS ยท Azure/AZNFS-mount Wiki


  • 2025๋…„ 7์›” 3์ผ ์—…๋ฐ์ดํŠธ ๋จ.
  • 2025๋…„ 7์›” 4์ผ ๋ฒˆ์—ญ ํ•จ. (by JYSEONG(MSFT) / GitHub)