libnbd-release-notes-1.8(1) LIBNBD libnbd-release-notes-1.8(1)

libnbd-release-notes-1.8 - یادداشت‌های انتشار libnbd نسخهٔ 1.8

این یادداشت‌های انتشار برای نسخهٔ پایدار libnbd 1.8 است. این سند تغییرات عمده را از نسخهٔ 1.6 توصیف می‌کند.

بستهٔ libnbd 1.8.0 در ۷ ژوئن ۲۰۲۱ منتشر شد.

اکنون libnbd در gitlab میزبانی می‌شود: https://listman.redhat.com/archives/libguestfs/2021-February/msg00021.html

اگر نقصی امنیتی پیدا کردید، لطفاً فایل SECURITY را در سورس‌کد بخوانید (به‌صورت برخط در اینجا: https://gitlab.com/nbdkit/libnbd/blob/master/SECURITY). برای آگاهی از مسائل امنیتی پیشین در libnbd، به libnbd-security(3) مراجعه کنید.

در طول چرخهٔ این نسخه یک باگ امنیتی در libnbd پیدا شد.

CVE-2021-20286 انکار سرویس هنگام استفاده از nbd_set_opt_mode(3)

اعلان کامل را در اینجا ببینید: https://listman.redhat.com/archives/libguestfs/2021-March/msg00092.html (کشف و رفع توسط Eric Blake).

nbd_get_private_data(3)
nbd_set_private_data(3)
این فراخوانی‌ها به شما امکان می‌دهند یک عدد صحیح بدون علامت یا یک اشاره‌گر را در هندل ذخیره کنید تا برنامه بتواند برای اهداف خود از آن استفاده کند.
nbd_get_uri(3)
این فراخوانی یک URI مربوط به NBD ایجاد می‌کند که می‌تواند برای اتصال مجدد به همان سرور استفاده شود (با استفاده از nbd_connect_uri(3) یا سایر ابزارهایی که از استاندارد NBD URI پشتیبانی می‌کنند).

شناسه‌های عددی IPv6 URI (مانند "nbd://[::1]/") اکنون پشتیبانی می‌شوند.

اگر backlog سرور سرریز کند، libnbd پیام خطای بهتری ارائه می‌دهد (با تشکر از Xin Long،‏ Lukas Doktor،‏ Eric Blake،‏ Martin Kletzander).

آزمون‌های یکپارچه‌سازی مداوم (CI) اکنون روی هر کامیت و درخواست ادغام (merge request) در مخزن بالادست اجرا می‌شوند (Martin Kletzander).

کارهای زیادی برای بهبود کارایی nbdcopy(1) انجام شده است (Nir Soffer،‏ Eric Blake).

در لینوکس، nbdcopy اکنون هنگام خواندن از فایل‌ها از readahead استفاده می‌کند و اقداماتی را برای حفظ page cache میزبان انجام می‌دهد.

گزینهٔ جدید --request-size در nbdcopy برای امکان کنترل اندازهٔ درخواست‌های ارسال‌شده به سرورهای NBD اضافه شده است. تنظیم این مورد می‌تواند بر کارایی اثر بگذارد (Nir Soffer).

ابزار nbdcopy اکنون از شبه‌مقصد "null:" پشتیبانی می‌کند که در آن خروجی را دور می‌ریزد. این قابلیت برای بنچمارک‌گیری مفید است.

پرچم جدید -v در nbdcopy برای فعال‌سازی اشکال‌زدایی libnbd و سایر موارد.

دستور nbdinfo(1) --list (که تمام exportهای یک سرور را فهرست می‌کند) دیگر در صورتی که یکی از exportها غیرقابل‌دسترس باشد یا خطایی قابل‌بازیابی رخ دهد، زودتر از موعد خارج نمی‌شود (Eric Blake).

ابزار nbdinfo اکنون URI هر export را در خروجی چاپ می‌کند که باعث می‌شود اتصال مجدد به هر export آسان‌تر شود.

ابزار nbdfuse(1) اکنون چندنخی (multithreaded) است و از صدور دستورات موازی NBD روی یک اتصال واحد و همچنین multi-conn پشتیبانی می‌کند، و بهبودهای دیگری نیز انجام شده است. این امر منجر به بهبود حدود ۵۰ درصدی کارایی در آزمایش با fio شد.

ابزار nbdfuse اکنون از سبک nbdcopy به‌صورت "[ CMD ]" پشتیبانی می‌کند، مانند:
nbdfuse dir/ramdisk [ nbdkit memory 1G ]

ابزار nbdfuse اکنون از آزادسازی فضا (trimming) پشتیبانی می‌کند. همچنین از صفر کردن سریع (fast zeroing) پشتیبانی می‌کند، اما کارکرد آن مستلزم یک وصلهٔ آیندهٔ کرنل است.

ابزار nbdfuse اگر export مربوط به NBD فقط‌خواندنی باشد، مجوزهای فایل مجازی را به درستی تنظیم می‌کند.

پرچم جدید -v در nbdfuse برای فعال‌سازی اشکال‌زدایی libnbd و موارد دیگر.

آزمونی برای سازگاری متقابل با qemu-storage-daemon(1) اضافه شد. توجه داشته باشید که qemu-storage-daemon در qemu 6.0.0 مشکل داشت، بنابراین این آزمون ممکن است ناموفق باشد مگر اینکه به یک نسخهٔ اصلاح‌شده ارتقا دهید (با تشکر از Stefan Hajnoczi،‏ Daniel Berrangé).

آزمونی برای nbdcopy به همراه TLS اضافه شد که پیش‌تر آزمایش نشده بود.

آزمون‌های سبک کد پایتون اکنون با استفاده از گزینهٔ زیر اختیاری (opt-in) هستند:
./configure --enable-python-code-style

اکنون آزمون‌های بیشتری باید روی FreeBSD اجرا شوند و نادیده گرفته نشوند.

آزمون‌های nbdfuse اکنون تضمین می‌کنند که خطاهای ناشی از NBD از طریق FUSE به کلاینت محلی برگردانده می‌شوند.

متغیرهای "MALLOC_CHECK_" و "MALLOC_PERTURB_" تنها هنگام اجرای آزمون‌ها فعال می‌شوند، نه هنگام اجرای برنامه‌های libnbd از دایرکتوری ساخت. این امر انجام بنچمارک‌ها را آسان‌تر می‌کند.

حداقل نسخهٔ کامپایلر C اکنون ISO C99 است (پیش‌تر ANSI C90 بود).

اکنون برای ساخت nbdfuse به FUSE 3 (به جای FUSE 2) نیاز است.

کتابخانه تلاش بیشتری می‌کند تا حافظهٔ thread-local storage را هنگام dlclose یا خروج (exit) نشت ندهد. (به دلیل معماری لینوکس، همیشه اجتناب از این امر ممکن نیست، به‌ویژه در برنامه‌های چندنخی).

رفع مشکل نوار پیشرفت در nbdcopy(1).

نام‌های export به صورت UTF-8 اکنون به درستی توسط nbdinfo(1) پردازش و نمایش داده می‌شوند.

خروجی --help در nbdcopy،‏ nbdfuse و nbdinfo اکنون خلاصه‌ای کوتاه از تمام گزینه‌ها را نشان می‌دهد و شامل چند مثال است.

تولیدکننده اکنون تنها به ocamlc نیاز دارد، نه ocamlfind (از Abhay Raj Singh).

اتصال‌های Golang اکنون از ماژول‌های golang استفاده کرده و به آن‌ها نیاز دارند.

مستندسازی استفاده از libnbd با سیستم ساخت Meson.

اضافه شدن مثال‌های Python.

اضافه شدن مثالی از چگونگی ادغام libnbd با libev (از Nir Soffer).

libnbd(3).

Eric Blake

Richard W.M. Jones

Martin Kletzander

Nir Soffer

Copyright Red Hat

این کتابخانه یک نرم‌افزار آزاد است؛ شما می‌توانید آن را تحت شرایط «مجوز عمومی جامع‌تر گنو» (GNU Lesser General Public License) همان‌طور که توسط بنیاد نرم‌افزارهای آزاد منتشر شده است، چه نسخهٔ ۲ مجوز و چه (به انتخاب خودتان) هر نسخهٔ بالاتر دیگری، بازتوزیع کرده یا تغییر دهید.

این کتابخانه با این امید توزیع شده است که مفید واقع شود، اما بدون هرگونه ضمانت؛ حتی بدون ضمانت ضمنی قابل فروش بودن یا مناسب بودن برای یک هدف خاص. برای جزئیات بیشتر به GNU Lesser General Public License مراجعه کنید.

شما باید به همراه این کتابخانه نسخه‌ای از GNU Lesser General Public License را دریافت کرده باشید؛ در غیر این صورت به این نشانی بنویسید: Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA

2026-07-16 libnbd-1.24.3