็†ฑ้–€ๅˆ†้กž
 ่ผ‰ๅ…ฅไธญ…
็›ฎ้Œ„

๐Ÿง Linux:ๅฎŒๆ•ด NFS Server ่ˆ‡ Client ๆŽ›่ผ‰ๆŒ‡ๅ—(ๅซ systemd ่‡ชๅ‹•ๆŽ›่ผ‰)

    ๐Ÿง Linux:ๅฎŒๆ•ด NFS Server ่ˆ‡ Client ๆŽ›่ผ‰ๆŒ‡ๅ—(ๅซ systemd ่‡ชๅ‹•ๆŽ›่ผ‰)

    ๆœฌ็ฏ‡ๅฐ‡ๅธถไฝ ๅพž้›ถๆžถ่จญ NFS Server、่จญๅฎš exports ๆฌŠ้™、Client ๆŽ›่ผ‰ๅˆฐ systemd ่‡ชๅ‹•ๆŽ›่ผ‰ๅฎŒๆ•ดๆต็จ‹,้ฉ็”จๆ–ผๅฎถๅบญๅฏฆ้ฉ—ๅฎค、Proxmox、Kubernetes、NAS ๆ•ดๅˆ็ญ‰ๆƒ…ๅขƒ。

    ๐Ÿ“Œ ไธ€、ไป€้บผๆ˜ฏ NFS?้ฉ็”จๆƒ…ๅขƒ่ˆ‡ๆžถๆง‹่ชชๆ˜Ž

    NFS(Network File System)ๆ˜ฏไธ€็จฎ้€้Ž็ถฒ่ทฏๅ…ฑไบซๆช”ๆกˆ็ณป็ตฑ็š„ๅ”ๅฎš,ๅธธ็”จๆ–ผไผบๆœๅ™จไน‹้–“ๅ…ฑไบซ่ณ‡ๆ–™。ๅฎƒ็š„้€Ÿๅบฆๅฟซ、ๅปถ้ฒไฝŽ,้žๅธธ้ฉๅˆ:

    • Proxmox / KVM ็’ฐๅขƒๆ”พ็ฝฎ ISO、Backup
    • ๅคšๅฐ Linux ไธปๆฉŸๅ…ฑไบซ่จญๅฎšๆˆ–่ณ‡ๆ–™็›ฎ้Œ„
    • Kubernetes / Docker ็ฏ€้ปžๅ…ฑไบซๅ„ฒๅญ˜
    • ไผๆฅญๅ…ง IT ็ณป็ตฑ็š„ๅ…ฑ็”จๆช”ๆกˆไธญๅฟƒ
    # ๅธธ่ฆ‹ NFS ๆžถๆง‹
    [Client A] --\
    [Client B] ----> [NFS Server] ----> Storage
    [Client C] --/
    
    ---

    ๐Ÿ“Œ ไบŒ、NFS Server ๅฎ‰่ฃ่ˆ‡่จญๅฎš

    1️⃣ ๅฎ‰่ฃ NFS ไผบๆœๅ™จๅฅ—ไปถ

    # CentOS / RHEL / Rocky / AlmaLinux
    sudo yum install -y nfs-utils
    
    # Ubuntu / Debian
    sudo apt install -y nfs-kernel-server
    

    2️⃣ ๅปบ็ซ‹ๅ…ฑไบซ่ณ‡ๆ–™ๅคพ

    sudo mkdir -p /srv/nfs/data
    sudo chown -R nobody:nogroup /srv/nfs/data     # Debian/Ubuntu
    # CentOS ๅฏ็”จ nfsnobody
    

    3️⃣ ่จญๅฎš /etc/exports

    sudo nano /etc/exports
    
    ็ฏ„ไพ‹่จญๅฎš(ๅ…่จฑ 10.0.0.0/24 ๅญ็ถฒ):
    /srv/nfs/data 10.0.0.0/24(rw,sync,no_root_squash,no_subtree_check)
    
    ๅธธ็”จๅƒๆ•ธ่ชชๆ˜Ž:
    ๅƒๆ•ธ่ชชๆ˜Ž
    rwๅ…่จฑ่ฎ€ๅฏซ
    syncๅŒๆญฅๅฏซๅ…ฅ,่ผƒๅฎ‰ๅ…จไฝ†็จๆ…ข
    no_root_squashไฟ็•™ root ่บซไปฝ(ๅ…ง็ถฒ็’ฐๅขƒๅธธ็”จ)
    no_subtree_checkๆๅ‡ๆ•ˆ่ƒฝ,ๅธธ่ฆ‹ๆœ€ไฝณๅŒ–

    4️⃣ ๅฅ—็”จ่จญๅฎšไธฆๅ•Ÿๅ‹•ๆœๅ‹™

    sudo exportfs -ra
    sudo systemctl enable --now nfs-server
    sudo systemctl status nfs-server
    
    ---

    ๐Ÿ“Œ ไธ‰、Client ๅดๆŽ›่ผ‰ NFS

    1️⃣ ๅฎ‰่ฃๅฟ…่ฆๅทฅๅ…ท

    # CentOS / RHEL
    sudo yum install -y nfs-utils
    
    # Ubuntu / Debian
    sudo apt install -y nfs-common
    

    2️⃣ ๆ‰‹ๅ‹•ๆŽ›่ผ‰(ๆธฌ่ฉฆ็”จ)

    sudo mkdir -p /mnt/nfs
    sudo mount -t nfs 10.0.0.10:/srv/nfs/data /mnt/nfs
    
    ็ขบ่ชๆŽ›่ผ‰ๆˆๅŠŸ:
    df -h | grep nfs
    
    ---

    ๐Ÿ“Œ ๅ››、่จญๅฎš fstab ้–‹ๆฉŸ่‡ชๅ‹•ๆŽ›่ผ‰

    1️⃣ ็ทจ่ผฏ fstab

    sudo nano /etc/fstab
    
    ๅŠ ๅ…ฅ:
    10.0.0.10:/srv/nfs/data   /mnt/nfs   nfs   defaults,_netdev   0  0
    

    2️⃣ ๅฅ—็”จ่จญๅฎš

    sudo mount -a
    
    ---

    ๐Ÿ“Œ ไบ”、ไฝฟ็”จ systemd ่‡ชๅ‹•ๆŽ›่ผ‰(ๆฏ” fstab ๆ›ดๅฏ้ )

    ๅœจๅคš็ฏ€้ปž้ƒจ็ฝฒ(ๅฆ‚ Proxmox / Kubernetes)ไธญ,systemd automount ่ƒฝ้ฟๅ…้–‹ๆฉŸ้ †ๅบ้€ ๆˆ็š„ๆŽ›่ผ‰ๅคฑๆ•—。

    1️⃣ ๅปบ็ซ‹ๆŽ›่ผ‰็›ฎ้Œ„

    sudo mkdir -p /mnt/nfs
    

    2️⃣ ๅปบ็ซ‹ systemd ๅ–ฎไฝๆช”

    sudo nano /etc/systemd/system/mnt-nfs.mount
    
    ๅ…งๅฎน:
    [Unit]
    Description=NFS Share Mount
    
    [Mount]
    What=10.0.0.10:/srv/nfs/data
    Where=/mnt/nfs
    Type=nfs
    Options=_netdev
    
    [Install]
    WantedBy=multi-user.target
    

    3️⃣ ๅปบ็ซ‹ automount(ๅ•Ÿๅ‹•ๅพŒ่‡ชๅ‹•ๅœจๅญ˜ๅ–ๆ™‚ๆŽ›่ผ‰)

    sudo nano /etc/systemd/system/mnt-nfs.automount
    
    ๅ…งๅฎน:
    [Unit]
    Description=NFS Automount
    
    [Automount]
    Where=/mnt/nfs
    
    [Install]
    WantedBy=multi-user.target
    

    4️⃣ ๅ•Ÿ็”จ

    sudo systemctl daemon-reload
    sudo systemctl enable --now mnt-nfs.automount
    
    ๆˆๅŠŸๅพŒ:
    cd /mnt/nfs   # ← ้€™ไธ€ๅˆป systemd ๆœƒ่‡ชๅ‹•ๆŽ›่ผ‰
    
    ---

    ๐Ÿ“Œ ๅ…ญ、NFS ๆ•ˆ่ƒฝๆœ€ไฝณๅŒ–(ๅฏ้ธ)

    ๆœ€ไฝณๅŒ–้ …็›ฎๅปบ่ญฐ
    asyncๆๅ‡้€Ÿๅบฆ(้žๆฅตๅบฆ้‡่ฆ–่ณ‡ๆ–™ไธ€่‡ดๆ€งๆ™‚)
    rsize / wsizeๅธธ็”จ 131072 ไปฅๆ้ซ˜ throughput
    noatime้™ไฝŽ metadata ่ฒ ๆ“”
    ไฝฟ็”จ SSDๅคงๅน…ๆๅ‡ NFS IOPS ่ƒฝๅŠ›
    ็ฏ„ไพ‹ mount option:
    10.0.0.10:/srv/nfs/data /mnt/nfs nfs defaults,noatime,rsize=131072,wsize=131072 0 0
    
    ---

    ๐Ÿ”— ๅปถไผธ้–ฑ่ฎ€

    — WWFandy・Linux ๆŠ€่ก“็ญ†่จ˜

    ๐Ÿ”— ๅˆ†ไบซ้€™็ฏ‡ LINE Facebook X

    ๆฒ’ๆœ‰็•™่จ€:

    ๅผต่ฒผ็•™่จ€

    ๅญ—็ดš