## 🧱 آموزش ساخت و مدیریت فایلسیستم Btrfs در لینوکس – سطح پیشرفته
**Btrfs (B-tree File System)** یکی از پیشرفتهترین فایلسیستمهای لینوکس است که امکاناتی مانند snapshot، compression، RAID داخلی و volume management را ارائه میدهد. در این آموزش با نحوه ساخت، مدیریت، snapshot گیری، و بررسی سلامت فایلسیستم Btrfs آشنا میشویم.
---
## بخش ۱: نصب ابزارهای موردنیاز
در برخی توزیعها به صورت پیشفرض نصب نیست:
```bash
# Debian/Ubuntu:
sudo apt install btrfs-progs
# RHEL/CentOS/Fedora:
sudo yum install btrfs-progs
```
---
## بخش ۲: ساخت فایلسیستم Btrfs
### 1️⃣ ساخت یک پارتیشن Btrfs:
```bash
sudo mkfs.btrfs /dev/sdb1
```
یا ساخت بر چند دیسک (RAID0/1 داخلی):
```bash
sudo mkfs.btrfs -d raid1 -m raid1 /dev/sdb1 /dev/sdc1
```
---
## بخش ۳: مانت و استفاده از Btrfs
```bash
sudo mkdir /mnt/btrfs
sudo mount /dev/sdb1 /mnt/btrfs
```
برای مانت خودکار در fstab:
```
UUID=xxxxx-xxxx /mnt/btrfs btrfs defaults 0 0
```
---
## بخش ۴: ساخت زیرحجمها (Subvolumes)
Btrfs از زیرحجم (subvolume) به جای دایرکتوری پشتیبانی میکند، که برای snapshot فوقالعاده مفید است.
### 1️⃣ ساخت subvolume:
```bash
sudo btrfs subvolume create /mnt/btrfs/data
```
### 2️⃣ مانت یک subvolume خاص:
```bash
sudo mount -o subvol=data /dev/sdb1 /mnt/btrfs_data
```
---
## بخش ۵: Snapshot گرفتن و بازگردانی
### 1️⃣ گرفتن snapshot:
```bash
sudo btrfs subvolume snapshot /mnt/btrfs/data /mnt/btrfs/data_snapshot
```
### 2️⃣ snapshot فقط خواندنی:
```bash
sudo btrfs subvolume snapshot -r /mnt/btrfs/data /mnt/btrfs/data_ro_snapshot
```
### 3️⃣ حذف snapshot:
```bash
sudo btrfs subvolume delete /mnt/btrfs/data_snapshot
```
---
## بخش ۶: فشردهسازی دادهها در Btrfs
Btrfs از فشردهسازی بلادرنگ پشتیبانی میکند (zlib، lzo یا zstd):
```bash
sudo mount -o compress=zstd /dev/sdb1 /mnt/btrfs
```
یا در fstab:
```
UUID=xxxxx /mnt/btrfs btrfs defaults,compress=zstd 0 0
```
---
## بخش ۷: بررسی سلامت و مدیریت فضای دیسک
### 1️⃣ بررسی فضای اشغالشده:
```bash
sudo btrfs filesystem df /mnt/btrfs
```
### 2️⃣ اطلاعات کلی:
```bash
sudo btrfs filesystem show
```
### 3️⃣ بررسی خطاها:
```bash
sudo btrfs scrub start /mnt/btrfs
sudo btrfs scrub status /mnt/btrfs
```
---
## بخش ۸: افزودن یا حذف دیسک
### 1️⃣ افزودن دیسک به فایلسیستم:
```bash
sudo btrfs device add /dev/sdc1 /mnt/btrfs
```
### 2️⃣ حذف دیسک:
```bash
sudo btrfs device remove /dev/sdc1 /mnt/btrfs
```
---
## جمعبندی
Btrfs گزینهای ایدهآل برای سرورهایی است که نیاز به snapshot، RAID نرمافزاری، مدیریت حجم و فشردهسازی دادهها دارند. برخلاف ext4، این فایلسیستم امکانات مدیریتی بسیار پیشرفتهتری دارد و برای محیطهای توسعه یا بکاپگیری منظم بسیار توصیه میشود.