|
● اجزاء PVFS۲
بسته اصلی PVFS۲ شامل سه جزء متفاوت است: یک سرور، یک کلاینت و یک ماژول کرنل. سرور بر روی گره هایی که داده سیستم فایل یا فوق داده را ذخیره می کنند اجرا می شود. کلاینت و ماژول کرنل نیز بوسیله گره هایی که به شکل فعال داده (یا فوق داده) را از سرورهای PVFS۲ ذخیره یا بازیابی می کنند مورد استفاده قرار می گیرند. بر خلاف PVFS اصلی، هر سرور PVFS۲ توانایی ایفای نقش به عنوان یک سرور داده، یک سرور فوق داده یا هر دو را بصورت همزمان دارد. همانگونه که قبلا گفته شد، سیستم های فایل موازی از تعدادی گره سود می برند که تمام داده میان آنها به شکل قابل پیش بینی قطعه قطعه شده است. این گره ها همان سرورهای داده در PVFS۲ هستند. برخی از انواع پیکربندی نیز ممکن است از چندین سرور فوق داده بهره ببرند. ذخیره کردن فوق داده در میان چندین گره کمکی است به موازنه بارگذاری سرور تحت اعمالی که شامل دسترسی سنگین و زیاد به فوق داده هستند (مثلا ایجاد یا تغییر نام تعداد زیادی فایل). این نوع پیکربندی بطور کامل در PVFS۲ پشتیبانی می گردد. بهرحال، تعداد سرورهای فوق داده هیچ فشاری بر روی اعمال خواندن یا نوشتن وارد نمی آورد، و اکثر برنامه های علمی اعمال فوق داده کافی جهت هر گونه بهره برداری از پیچیدگی افزوده انجام نمی دهند.
کلاینت های PVFS۲ با سرورهای PVFS۲ بر روی اتصال شبکه ارتباط برقرار می نمایند. تمامی ارتباط به صورت اختیاری به حالت رمز در می آیند تا اطمینان حاصل گردد که ماشین های دارای معماری های متفاوت توانایی درک یکدیگر را دارند. یک کلاستر مختلط شامل گره های x۸۶، Itanium و PowerPC را تصور نمایید. رمزبندی ارتباط ما تضمین می کند که تمامی گره ها قادر به استفاده از یک PVFS۲ volume، صرفنظر از ترتیب بایت محلی یا اندازه کلمه خواهند بود. ماژول کرنل PVFS۲ یک درایور کرنل لینوکس است که به یک PVFS۲ اجازه نصب را همانند هر نوع سیستم فایل لینوکس دیگری می دهد. وظیفه اصلی آن ترجمه واضح تمامی اعمال سیستم فایل به دستورات کلاینت PVFS۲ بر روی PVFS۲ نصب شده است.
● دستیابی به سیستم های فایل PVFS۲
دو روش جهت دستیابی به سیستم های فایل PVFS۲ فراهم گردیده است. روش اول نصب کردن سیستم فایل PVFS۲ است. این روش اعمال تغییرات توسط کاربر و دایرکتوری های لیست، یا انتقال فایل ها و همچنین اجرای باینری ها از سیستم فایل را مجاز می شمارد. این مکانیزم با برخی بالاسری های کارآیی مواجه می گردد اما مناسب ترین روش جهت دستیابی تعاملی به سیستم فایل می باشد.برنامه های علمی از روش دوم (MPI IO) استفاده می نمایند. اینترفیس MPI IO به دستیابی بهینه به فایل های منفرد توسط تعداد زیادی از پردازش ها بر روی گره های مختلف کمک می کند. آن همچنین اعمال دستیابی غیرپیوسته را فراهم می آورد که جهت دستیابی کارآمد به داده گسترش یافته در سراسر فایل مورد استفاده قرار می گیرد. در مورد تصویر ۲ این کار با درخواست هر عنصر هشتمی که در آفست ۰ شروع شده و در آفست ۵۶ پایان می یابد، کلا به عنوان یک عملیات سیستم فایل، صورت می پذیرد. در این مقاله ما بر روی روش اول تمرکز کرده ایم.
● راه اندازی PVFS۲
PVFS۲ جهت اجرا بر روی چندین ماشین در نظر گرفته شده است. در هر صورت، برای سادگی کار، ما PVFS۲ را بر روی یک ماشین نصب و راه اندازی می کنیم. ما ماشین را با نام "testmachine۱" صدا خواهیم زد و نصب را در محل پیش فرض (/usr/local) انجام خواهیم داد. سپس نسخه PVFS۲ را در /mnt/pvfs نصب خواهیم کرد. فرایند مربوط به نصب بر روی چندین ماشین کاملا مشابه روند گفته شده است. PVFS۲ بر روی اغلب توزیع های جدید GNU/Linux ایجاد شده است، اما اگر شما مایلید از ماژول کرنل استفاده نمایید، شما به کرنل لینوکس نسخه ۲.۶.۰ test۴ یا پس از آن نیاز خواهید داشت. PVFS۲ با استفاده از "configure" و "make" ایجاد و نصب گردیده است. در مثال هایی که در ادامه آمده است اینگونه فرض شده که شما به عنوان root وارد سیستم شده اید. در صورتیکه شما مایل به ایجاد ماژول کرنل باشید گزینه " with kernel" مورد نیاز خواهد بود.
./configure with kernel=/usr/src/linux ۲.۶.x
▪ make
make install
اگر شما قصد ایجاد ماژول کرنل اختیاری را دارید، اکنون باید آن را بصورت مجزا کامپایل نمایید. این کار را با تغییر دایرکتوری ها به دایرکتوری "src/kernel/linux ۲.۶" و اجرای "make" انجام دهید. پس از اینکه ماژول ایجاد شد، فایل pvfs۲.ko را در محلی به انتخاب خود کپی نمایید (مثلا در /lib/modules/`uname r`/kernel/fs/pvfs۲.ko). پس از آنکه نرم افزار ایجاد و نصب گردید، بایستی پیکربندی شود. بسته PVFS۲ ابزاری بنام pvfs۲ genconfig را جهت ایجاد فایل های پیکربندی برای هر یک از سرورهای شما فراهم آورده است. هر سرور به دو فایل پیکربندی نیاز دارد (یکی برای پیش فرض های عمومی، و یکی برای تنظیمات محلی) که بایستی در هنگام اجرای pvfs۲ genconfig مشخص گردند. یک مثال دستور خط فرمان می تواند به صورت زیر باشد:
▪ pvfs۲ genconfig global.conf local.conf
این فرمان اطلاعات دیگری نیز از شما دریافت می نماید؛ بهرحال، احتمالا موارد پیش فرض برای این مثال کفایت می کند. توجه داشته باشید که فایل های ایجاد شده global.conf و local.conf testmachine۱ خواهند بود. قبل از آغاز به کار سرور PVFS۲، شما بایستی دایرکتوری هایی را که برای عمل ذخیره سازی مورد استفاده قرار خواهند گرفت را تعیین نمایید. این کار بسیار ساده با آغاز pvfs۲ server به همراه یک آرگومان " f" در کنار نام فایل های پیکربندی صورت می گیرد.
▪ pvfs۲ server global.conf local.conf testmachine۱ f
سرور، فضای ذخیره سازی را آغاز سازی نموده و سپس خارج می شود. حال از این پس با همین خط فرمان اما بدون آرگومان " f" می تواند شروع به کار نماید.
▪ pvfs۲ server global.conf local.conftestmachine۱
در مرحله بعد، یک فایل با نام /etc/pvfs۲tab ایجاد نمایید. این فایل حاوی خط زیر است:
▪ tcp://testmachine۱:۳۳۳۴/pvfs۲ fs /mnt/pvfs pvfs۲ default ۰ ۰
در این مرحله از کار، اگر شما اینترفیس ماژول کرنل لینوکس را مورد آزمایش قرار نداده اید، می توانید بدون هیچ مشکلی به قسمت Testing بروید. در غیر اینصورت، همین حالا آن را با استفاده از insmod یا modprobe لود نمایید. گام بعدی آغاز به کار برنامه کلاینت PVFS۲ است. برنامه کلاینت PVFS۲ شامل دو برنامه به نام های pvfs۲ client core و pvfs۲ client است. در صورتیکه برنامه pvfs۲ client core در PATH سیستم شما نصب شده باشد، برنامه pvfs۲ client آن را بصورت خودکار یافته و شما به سادگی می توانید "pvfs۲ client" را اجرا نمایید. در غیر اینصورت، شما باید با استفاده از سوییچ خط فرمان –p محل برنامه pvfs۲ client core را برای pvfs۲ client مشخص نمایید.
▪ pvfs۲ client p /usr/local/bin/pvfs۲ client core
و در نهایت، برای نصب نوع نسخه PVFS۲ :
▪ mount t pvfs۲ pvfs۲ /mnt/pvfs
حالا PVFS۲ نصب شده و آماده آزمایش است!
● سیستم فایل جدید خود را آزمایش نمایید
نخستین کار استفاده از ابزار pvfs۲ ping به منظور اطمینان از روشن و در حال اجرا بودن سرور است. این ابزار طی یکسری مراحل تعیین می نماید که سیستم بدرستی پیکربندی شده و به درخواست هایی که از سوی کلاینت (کلاینتی که بر روی آن نصب شده است) صادر می شود پاسخ می دهد.
▪ pvfs۲ ping m /mnt/pvfs
سپس یک فایل را با استفاده از pvfs۲ import بر روی سیستم کپی نمایید. این ابزار از برخی جهات شبیه "cp" است، اما در هنگام انتقال داده به سیستم فایل از بافرهای بزرگی استفاده می کند. همچنین زمان کپی را محاسبه می نماید.
▪ pvfs۲ import linuxdistro.iso /mnt/pvfs/linuxdistro.iso
برای چک کردن فضای قابل استفاده بر روی سرورها، ما ابزاری بنام pvfs۲ statfs فراهم کرده ایم. این ابزار اطلاعات را مشابه فرمان "df" گزارش می دهد؛ آن در میان تمامی سرورهای PVFS۲ پیکربندی شده شما کار خود را انجام می دهد. همانند "df"، استفاده از گزینه " h" موجب نمایش خروجی در اندازه خوانا توسط انسان می شود.
▪ pvfs۲ statfs h m /mnt/pvfs
اگر شما PVFS۲ را نصب کرده باشید، امکان استفاده از ابزارهای سیستمی استاندارد همچون "cp" و "df" برای شما فراهم خواهد بود. در هنگام کار با سیستم فایل آزمایشی تان، این احتمال وجود دارد که برخی از اعمال بنظر پاسخ دهندگی کمی داشته باشند. مجددا ذکر این نکته اهمیت دارد که سیستم های فایل موازی همچون PVFS۲ برای انتقال حجم زیادی از داده بهینه شده اند.
● نتیجه گیری
هیچ سیستم فایلی وجود ندارد که راه حل کاملی برای هر نوع از اعمال ورودی/خروجی باشد، و PVFS۲ نیز از این قاعده مستثنی نیست. برنامه های با کارآیی بالا برای دستیابی داده بر روی مجموعه متفاوتی از مشخصه ها تکیه دارند. به طور خاص، PVFS۲ جهت برنامه های دارای حجم زیادی از اعمال ورودی/خروجی بسیار مناسب است. اگر شما حجم زیادی از داده دارید و نیازمند دسترسی سریع به آن از ماشین های فراوانی هستید، ارزش آن را دارد که نگاهی به PVFS۲ بیاندازید. |