• 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 : μ„œλ²„λ‘œλΆ€ν„° μƒˆλ‘œμš΄ 속성이 도착할 λ•Œλ§ˆλ‹€ μ—…λ°μ΄νŠΈ λœλ‹€.
  • μ„œλ²„μ— 데이터가 λ””μŠ€ν¬μ— μ¨μ‘Œλ‹€λŠ” 확인 전에 ν΄λΌμ΄μ–ΈνŠΈλ₯Ό ν•΄μ œν•˜λ©΄ μ•ˆλœλ‹€.