## بخش اول: راهاندازی فایلسیستمهای استاندارد در لینوکس
### 1️⃣ ساخت پارتیشن و فایلسیستم
ابتدا دیسک خام را پارتیشنبندی میکنیم:
```bash
sudo fdisk /dev/sdb
```
سپس فایلسیستم مورد نظر را روی آن ایجاد میکنیم (مثلاً ext4):
```bash
sudo mkfs.ext4 /dev/sdb1
sudo mkdir -p /mnt/data
sudo mount /dev/sdb1 /mnt/data
```
### 2️⃣ اضافهکردن به fstab برای مانت خودکار
```bash
sudo blkid # گرفتن UUID پارتیشن
sudo nano /etc/fstab
```
و افزودن خط:
```
UUID=xxxxxxxx /mnt/data ext4 defaults,noatime 0 2
```
---
## بخش دوم: پیکربندی سرور NFSv4 در لینوکس
### 📌 هدف: اشتراکگذاری دایرکتوریها به کلاینتها از طریق پروتکل **NFS نسخه ۴**
---
### 1️⃣ نصب NFS Server
در توزیعهای Debian/Ubuntu:
```bash
sudo apt install nfs-kernel-server
```
در توزیعهای RHEL/CentOS:
```bash
sudo yum install nfs-utils
```
---
### 2️⃣ ساخت دایرکتوری اشتراکی
```bash
sudo mkdir -p /srv/nfs/data
sudo chown nobody:nogroup /srv/nfs/data
sudo chmod 755 /srv/nfs/data
```
---
### 3️⃣ پیکربندی فایل `/etc/exports`
فایل زیر را ویرایش کن:
```bash
sudo nano /etc/exports
```
و اضافه کن:
```
/srv/nfs/data 192.168.1.0/24(rw,sync,no_subtree_check,fsid=0,crossmnt)
```
> `fsid=0` فقط برای ریشه NFSv4 الزامیست.
---
### 4️⃣ راهاندازی و فعالسازی سرویسها
```bash
sudo exportfs -ra
sudo systemctl enable nfs-server
sudo systemctl start nfs-server
```
برای اطمینان از فعال بودن:
```bash
sudo exportfs -v
```
---
### 5️⃣ باز کردن پورتهای مورد نیاز در فایروال
در CentOS/RHEL:
```bash
sudo firewall-cmd --add-service=nfs --permanent
sudo firewall-cmd --add-service=mountd --permanent
sudo firewall-cmd --add-service=rpc-bind --permanent
sudo firewall-cmd --reload
```
---
## بخش سوم: اتصال به NFSv4 از سمت کلاینت
روی کلاینت:
### نصب ابزار NFS
```bash
sudo apt install nfs-common # برای Debian/Ubuntu
sudo yum install nfs-utils # برای RHEL/CentOS
```
### مانت پوشه اشتراکی:
```bash
sudo mkdir -p /mnt/nfs_data
sudo mount -t nfs4 192.168.1.100:/ /mnt/nfs_data
```
> مسیر `/` در NFSv4 به معنی ریشه share تعریف شده با `fsid=0` است.
---
### مانت خودکار با fstab در کلاینت:
```bash
192.168.1.100:/ /mnt/nfs_data nfs4 defaults,_netdev 0 0
```
---
## نکات امنیتی و حرفهای
| مورد | توضیح |
| -------------------- | ------------------------------------------------------ |
| `no_root_squash` | دسترسی root را از کلاینتها حذف نکن (خطرناک) |
| `fsid=0` | الزامی برای ریشه NFSv4 |
| رمزنگاری مسیر با SSH | برای انتقال امن (در صورت نیاز به امنیت بالا) |
| محدود کردن IP ها | با `hosts.allow` یا `firewalld` کنترل دقیق داشته باشید |
---
## جمعبندی
راهاندازی فایلسیستم استاندارد و اشتراکگذاری آن از طریق NFSv4، یکی از بهترین روشها برای انتقال فایل و اتصال سیستمها در شبکههای داخلی است. با رعایت نکات امنیتی، میتوانید این سیستم را در سازمان یا سرورهای ابری خود پیادهسازی کنید.