NILFS(8) دستورات مدیریت سیستم NILFS(8)

nilfs - مروری بر سامانه پرونده گزارشساختار لاگمحور NILFS2

مروری بر سامانه پرونده NILFS و ابزارهای مرتبط با آن.

بخش nilfs معماری، ویژگیهای کلیدی، مکانیزم لاگمحور (log-structured) و مدیریت عکسهای فوری و نقاط بازرسی سامانه پرونده NILFS2 را توضیح میدهد.

NILFS یک سامانه پرونده لاگ‌محور است که برای لینوکس توسعه یافته است. NILFS قابلیت نسخه‌بندی کل سامانه پرونده و عکس‌برداری فوری پیوسته را فراهم می‌کند که به کاربران امکان می‌دهد فایل‌هایی را که مدتی پیش به اشتباه بازنویسی یا تخریب شده‌اند، بازیابی کنند.

نسخه اصلی کنونی NILFS نسخه ۲ است که به عنوان NILFS2 شناخته می‌شود. NILFS2 مجهز به یک زباله‌روب برخط (که پاک‌کننده یا cleaner نیز نامیده می‌شود) است که فضای دیسک را در پس‌زمینه با حفظ چندین عکس فوری بازیابی می‌کند.

هنگامی که داده‌ای نوشته می‌شود یا هر تغییری در سامانه پرونده NILFS2 صورت می‌گیرد، به طور خودکار یک نقطه بازرسی (checkpoint) ایجاد می‌شود. یک نقطه بازرسی نشان‌دهنده وضعیت سازگار و پایداری از سامانه پرونده NILFS2 در یک لحظه مشخص است. این نقطه پس از تبدیل شدن به یک عکس فوری (snapshot) قابل سوار شدن خواهد بود. عکس فوری در واقع نقطه بازرسی علامت‌گذاری‌شده‌ای است که نباید توسط پاک‌کننده حذف شود. NILFS2 در فواصل زمانی منظم (مگر در صورتی که هیچ تغییری وجود نداشته باشد) یا همراه با نوشتن‌های همگام، نقاط بازرسی متعددی ایجاد می‌کند. هیچ محدودیت عملی برای تعداد نقاط بازرسی و عکس‌های فوری وجود ندارد.

ابزارهای زیر برای مدیریت نقاط بازرسی و عکس‌های فوری در دسترس هستند:

lscp
فهرست کردن نقاط بازرسی یا عکس‌های فوری
ایجاد یک نقطه بازرسی یا یک عکس فوری
تغییر دادن یک نقطه بازرسی موجود به عکس فوری یا برعکس
باطل کردن نقطه(های) بازرسی تعیین‌شده

این ابزارها قابلیت نسخه‌بندی را به NILFS2 می‌بخشند؛ کاربر می‌تواند نسخه‌های مهم را از میان نقاط بازرسی ایجادشده پیوسته انتخاب کرده و آن‌ها را به عکس‌های فوری تبدیل کند تا برای مدت‌های طولانی حفظ شوند.

هر نقطه بازرسی به جز عکس‌های فوری، پس از گذشت مدت زمانی معین در برابر پاک‌کننده بدون حفاظت خواهد شد. این بازه زمانی توسط پارامتر protection_period تعریف‌شده در پرونده /etc/nilfs_cleanerd.conf(5) کنترل می‌شود.

به mount.nilfs2(8) مراجعه کنید.

یک سامانه پرونده NILFS2 روی دستگاه بلوکی «/dev/sdb1» ایجاد می‌کند.
سامانه پرونده NILFS2 را روی نقطه اتصال «/nilfs» مانند یک سامانه پرونده معمولی POSIX سوار می‌کند. این دستور فرایند پاک‌کننده nilfs_cleanerd(8) را از طریق یک برنامه سوار کردن خارجی (یعنی mount.nilfs2(8)) فراخوانی خواهد کرد.
نقاط بازرسی ایجادشده در سامانه پرونده را به صورت زیر فهرست می‌کند:
CNO        DATE     TIME  MODE  FLG      BLKCNT       ICNT
  1  2014-01-18 20:49:54   cp    -            4          2
  2  2014-01-18 20:51:45   cp    -         3990         11
  3  2014-01-18 20:51:45   cp    -         6058          3
  4  2014-01-18 20:51:49   cp    -         4807          6
  5  2014-01-18 20:51:49   cp    -          262          3
...
نقطه بازرسی را که checkpoint-number آن دو است به یک عکس فوری تبدیل می‌کند. سپس فهرست نقاط بازرسی به شکل زیر تغییر خواهد کرد:
CNO        DATE     TIME  MODE  FLG      BLKCNT       ICNT
  1  2014-01-18 20:49:54   cp    -            4          2
  2  2014-01-18 20:51:45   ss    -         3990         11
  3  2014-01-18 20:51:45   cp    -         6058          3
  4  2014-01-18 20:51:49   cp    -         4807          6
  5  2014-01-18 20:51:49   cp    -          262          3
...
عکس فوری را روی پوشه دیگری به نشانی «/snapshot» به عنوان یک سامانه پرونده فقط‌خواندنی سوار می‌کند. در اینجا سوار کردن عکس فوری به حداقل دو گزینه نیاز دارد: یک گزینه فقط‌خواندنی (-r یا -o ro) و گزینه cp (-o cp=checkpoint-number). توجه داشته باشید که یک سوار کردن خواندن/نوشتن و یک یا چند عکس فوری می‌توانند به طور مستقل از یکدیگر سوار شوند، بنابراین پشتیبان‌گیری برخط از طریق سوار کردن عکس‌های فوری امکان‌پذیر است.
# mount -t nilfs2
/dev/sdb1 on /nilfs type nilfs2 (rw,gcpid=13296)
/dev/sdb1 on /snapshot type nilfs2 (ro,cp=2)
سامانه پرونده NILFS2 سوارشده روی «/nilfs» را پیاده می‌کند و nilfs_cleanerd(8) را از طریق برنامه پیاده‌سازی خارجی (umount.nilfs2(8)) برای اتصال خواندن/نوشتن خاموش می‌کند.

NILFS2 توسط تیم توسعه NILFS ایجاد شده است.

mkfs.nilfs2(8), mount.nilfs2(8), umount.nilfs2(8), nilfs_cleanerd(8), nilfs_cleanerd.conf(5), nilfs-tune(8), nilfs-clean(8), nilfs-resize(8), lscp(1), mkcp(8), chcp(8), rmcp(8), lssu(1), dumpseg(8)

https://nilfs.sourceforge.io

مه ۲۰۲۵ nilfs-utils