• toc {:toc}

File-System Mounting

  • ํŒŒ์ผ ์‹œ์Šคํ…œ์€ ํ”„๋กœ์„ธ์Šค์— ์‚ฌ์šฉ๋˜๊ธฐ ์ „์— mount๋˜์–ด์•ผ ํ•œ๋‹ค.

    • Storage name, mount point(๊ฒฝ๋กœ) ๊ฐ€ ์„ค์ •๋œ๋‹ค.
  • Root partition์€ OS ํฌํ•จํ•œ๋‹ค.

    • boot time์— mount ๋œ๋‹ค.
    • ๋‹ค๋ฅธ partition์€ ์ž๋™, ์ˆ˜๋™์œผ๋กœ ์ถ”๊ฐ€ ๊ฐ€๋Šฅ

image

Virtual File Systems on Unix

  • Virtual File System : ํŒŒ์ผ ์‹œ์Šคํ…œ ๊ตฌํ˜„์˜ ๊ฐ์ฒด ์ง€ํ–ฅ์  ๋ฐฉ์‹ ์ œ๊ณต
  • ๋‹คํ˜•์„ฑ์„ ์ด์šฉํ•ด ํŒŒ์ผ ์‹œ์Šคํ…œ ๊ตฌํ˜„
    • ๋‹ค์–‘ํ•œ ํƒ€์ž…์˜ ํŒŒ์ผ ์‹œ์Šคํ…œ์— ๋Œ€ํ•ด ๊ฐ™์€ ์‹œ์Šคํ…œ ์ฝœ ์ธํ„ฐํŽ˜์ด์Šค ์‚ฌ์šฉ ํ—ˆ์šฉ
    • ๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•ด ๊ณ ์œ ํ•˜๊ฒŒ ํŒŒ์ผ์„ ํ‘œํ˜„ํ•˜๋Š” ๋งค์ปค๋‹ˆ์ฆ˜ ์ œ๊ณต

image

  • EX) Linux
    • inode object - ๊ฐœ๋ณ„์˜ ํŒŒ์ผ์„ ๋‚˜ํƒ€๋‚ธ๋‹ค.
    • file object - ์—ด๋ฆฐ ํŒŒ์ผ์„ ๋‚˜ํƒ€๋‚ธ๋‹ค.
    • superblock object - ์ „์ฒด ํŒŒ์ผ ์‹œ์Šคํ…œ์„ ๋‚˜ํƒ€๋‚ธ๋‹ค.
    • dentry object - ๊ฐœ๋ณ„ ๋””๋ ‰ํ† ๋ฆฌ entry๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค.

Remote File Systems

๋„คํŠธ์›Œํฌ๋ฅผ ๊ฑฐ์ณ ํŒŒ์ผ ๊ณต์œ 

  1. FTP(File Transfer Protocol) : ์ˆ˜๋™์œผ๋กœ ๊ฐ ํŒŒ์ผ์„ ๊ณต์œ ํ•œ๋‹ค.
  2. DFS(Distributed file system) : ์—ฌ๋Ÿฌ ํŒŒ์ผ ์‹œ์Šคํ…œ์—์„œ ๋™๊ธฐ์ ์œผ๋กœ ๊ณต์œ . cluster์—์„œ ๋งŽ์ด ์‚ฌ์šฉํ•œ๋‹ค.
  3. WWW(World Wide Web) : ๋งํฌ๋กœ ๋‹ค์šด๋กœ๋“œ, ์—…๋กœ๋“œ๋ฅผ ํ•œ๋‹ค.

Network File System(NFS)

  • ํด๋ผ์ด์–ธํŠธ-์„œ๋ฒ„ ๋„คํŠธ์›Œํฌ ํŒŒ์ผ ์‹œ์Šคํ…œ์œผ๋กœ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๊ณ  ๊ตฌํ˜„๋˜์–ด ์žˆ๋‹ค.
  • NFS ์„œ๋ฒ„๋กœ ๋™์ž‘ํ•˜๋Š” ์žฅ๋น„์— ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ ‘์†ํ•˜์—ฌ ์ž์‹ ์˜ ๋””์Šคํฌ์ฒ˜๋Ÿผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
  • TCP, UDP/IP ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
  • RPC(Remote Procedure Call) : ์„œ๋ฒ„ ํ•จ์ˆ˜๋ฅผ RPC ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•ด ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋‹ค.

image

  • ํˆฌ๋ช…ํ•œ ๋ฐฉ์‹์œผ๋กœ ํŒŒ์ผ ์‹œ์Šคํ…œ์„ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•œ๋‹ค.
  • remote ๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ local ํŒŒ์ผ ์‹œ์Šคํ…œ ๋””๋ ‰ํ† ๋ฆฌ์— mount ๋˜์–ด ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ๋‹ค.
    • Local์—์„œ remote ๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ ํ‘œ์‹œ๋˜๋Š”๋ฐ ์‹ค์ œ๋กœ๋Š” ์„œ๋ฒ„์— ์žˆ์œผ๋‚˜ ์ ‘๊ทผํ•ด ์‚ฌ์šฉ ๊ฐ€๋Šฅ

NFS Mount Protocol

  • Mount operation โ†’ (mount๋˜๋Š” remote ๋””๋ ‰ํ† ๋ฆฌ ์ด๋ฆ„, ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ €์žฅํ•˜๋Š” ์„œ๋ฒ„ ์ด๋ฆ„)์„ ํฌํ•จ
    • RPC์— mount request๋Š” ์—ฐ๊ฒฐ๋œ๋‹ค.
    • Export list : mount ๊ฐ€๋Šฅํ•œ ๊ธฐ๊ธฐ์˜ ์ด๋ฆ„์— ๋Œ€ํ•ด ๋ช…์‹œ
    • Export list์— ์ถ”๊ฐ€๋˜์–ด ์žˆ๋Š” ๊ฒฝ์šฐ ์„œ๋ฒ„๋Š” mount๋œ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์‹๋ณ„ํ•˜๋Š” file system identifier, inode number๋ฅผ ๊ฐ€์ง„ file handler๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค. โ‡’ ์ถ”๊ฐ€์ ์ธ ์ ‘๊ทผ์„ ์ค€๋‹ค.
  • Mount operation์€ ์„œ๋ฒ„ ์ธก์— ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š๋Š”๋‹ค.

NFS Protocol

  • Remote file ์กฐ์ž‘์„ ์œ„ํ•ด RPC ์ œ๊ณต
    • ๋””๋ ‰ํ† ๋ฆฌ์—์„œ ํŒŒ์ผ ์ฐพ๊ธฐ
    • ๋””๋ ‰ํ† ๋ฆฌ entry ์ฝ๊ธฐ
    • ๋งํฌ, ๋””๋ ‰ํ† ๋ฆฌ ์กฐ์ž‘
    • ํŒŒ์ผ ์†์„ฑ ์ ‘๊ทผ
    • ์ฝ๊ณ  ์“ฐ๊ธฐ
  • NFS ์„œ๋ฒ„๋Š” ๋”ฐ๋กœ ์ €์žฅํ•˜์ง€ ์•Š๊ณ  ํ•„์š”ํ•  ๋•Œ๋งˆ๋‹ค ์ฝ์–ด ์ฒ˜๋ฆฌํ•œ๋‹ค. โ†’ ๊ฐ ์š”์ฒญ์€ argment ์ „๋ถ€๋ฅผ ์ œ๊ณต
  • ์ˆ˜์ •๋œ ๋ฐ์ดํ„ฐ๋Š” ๊ฒฐ๊ณผ๊ฐ€ ํด๋ผ์ด์–ธํŠธ์— ๋ฐ˜ํ™˜๋˜๊ธฐ ์ „์— ์„œ๋ฒ„ ๋””์Šคํฌ์— ๋ฐ”๋กœ ์ ์šฉ๋˜์–ด์•ผ ํ•œ๋‹ค.
  • NFS protocol์€ ๋™์‹œ์„ฑ ์ œ์–ด ๋งค์ปค๋‹ˆ์ฆ˜์„ ์ œ๊ณตํ•˜์ง€ ์•Š๋Š”๋‹ค.

NFS Path-Name Translation

  • Component ์ด๋ฆ„์œผ๋กœ ๊ฒฝ๋กœ ๋‚˜๋ˆ„๊ณ  ์ด๋ฆ„ ๋ฐ ๋””๋ ‰ํ† ๋ฆฌ vnode ์Œ์— ๋Œ€ํ•ด ๋ณ„๋„ NFC lookup ํ˜ธ์ถœ์„ ํ•ด์•ผํ•œ๋‹ค.
  • ์ด๋Ÿฐ ์ด๋ฆ„, ๊ฒฝ๋กœ๋ฅผ ํด๋ผ์ด์–ธํŠธ ์ธก์—์„œ cache๋กœ ์ €์žฅํ•˜๋ฉด ๋นจ๋ผ์งˆ ๊ฒƒ.

NFS Remote Operations

  • System call๊ณผ NFS RPC ํ”„๋กœํ† ์ฝœ์€ ๊ฑฐ์˜ ์ผ๋Œ€์ผ ๋Œ€์‘๊ด€๊ณ„

  • ์„ฑ๋Šฅ ๋ชฉ์ ์œผ๋กœ buffering, caching ์‚ฌ์šฉ

    • File-blocks cache : ํŒŒ์ผ์ด ์—ด๋ ธ์„ ๋•Œ ์ปค๋„์ด ์„œ๋ฒ„์—์„œ cached ์†์„ฑ์„ ๊ฐ€์ ธ์˜ฌ์ง€ ์žฌ๊ฒ€์ฆํ• ์ง€ ํ™•์ธ(์ˆ˜์ • ์—ฌ๋ถ€ ํ™•์ธํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ)
    • File-attribute cache : ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ์ƒˆ๋กœ์šด ์†์„ฑ์ด ๋„์ฐฉํ•  ๋•Œ๋งˆ๋‹ค ์—…๋ฐ์ดํŠธ ๋œ๋‹ค.
  • ์„œ๋ฒ„์— ๋ฐ์ดํ„ฐ๊ฐ€ ๋””์Šคํฌ์— ์จ์กŒ๋‹ค๋Š” ํ™•์ธ ์ „์— ํด๋ผ์ด์–ธํŠธ๋ฅผ ํ•ด์ œํ•˜๋ฉด ์•ˆ๋œ๋‹ค.