در قسمت قبل کارهای اولیه و مورد نیاز برای کلاستر کردن رزبری پای را انجام دادیم و در این بخش میخواهیم دستگاههای خود را برای این منظور کانفیگ کنیم.
کانفیگ کردن کلاستر
اولین کاری که باید انجام دهیم این است که جدیدترین نسخه رزبین را برای یک SD پیادهسازی کنیم و سپس آن را بر روی ۳ کارت SD دیگر نیز کپی کنیم و به هر رزبری پای یک کارت SD اختصاص دهیم. سپس به وصیله روتر ip های مورد نظر را به دستگاهها اختصاص میدهیم؛ در اینجا من ip با مشخصات : ۱۹۲٫۱۶۸٫۱٫۱۷۳ را برای رزبری اصلی و ۱۷۷ و ۱۷۸ و ۱۸۰ را نیز برای سه رزبری زیر شاخه در نظر گرفته ام.
سپس باید به node ها لاگین کردن و با دستور زیر آها را کانفیگ خواهیم کرد :
sudo raspi-config
و به قسمت فایل سیستمها رفته و فایل سیستم روت را expand میکنیم تا حجم آن افزایش پیدا کند و همچنین برای امنیت بیشر پسورد های پیشفرض هر رزبری را نیز عوض میکنیم. پس از آن من node ها را تغییر نام دادم و آنها به صوت زیر نامگذاری کردم :
rpi0 برای گره اصلی یا همان رزبری کنترل کننده بقیه وبرد های دیگر نیز به ترتیب rpi1 و rpi2 و rpi3 نامگذاری شده اند.
پس از انجام اینها فایل /etc/hosts را نیز در هر node کمی ویرایش کردهایم و چیزی شبیه به زیر در آن خواهیم داشت :
% cat /etc/hosts ۱۲۷٫۰٫۰٫۱ localhost ::۱ localhost ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters ۱۲۷٫۰٫۱٫۱ rpi0 ۱۹۲٫۱۶۸٫۱٫۱۷۳ rpi0 rpi0.local rpi0.lan ۱۹۲٫۱۶۸٫۱٫۱۷۷ rpi1 rpi1.local rpi1.lan ۱۹۲٫۱۶۸٫۱٫۱۷۸ rpi2 rpi2.local rpi2.lan ۱۹۲٫۱۶۸٫۱٫۱۸۰ rpi3 rpi3.local rpi3.lan
پس از آن کمی جلوتر رفتیم و ssh key نیز برای همه ۴ گره خود ایجاد کردیم و برای آنها نیز pass phrase در نظر نگرفتیم و کلید پابلیک هر نود را با ۳ نود دیگر به اشتراک گذاشتیم تا ارتباط آن در هنگام کلاستر به راحتی برقرار شود و اینکار بدین معنی است که میتوانیم بدون وارد کردن پسورد به هرکدام از رزبری ها ssh بزنیم اما هنوز هم نیاز به وارد کردن رمز عبور برای node0 یا همان سرشاخه کلاستر داریم.
اضافه کردن دیسک
یکی از چیزهایی که به گره اصلی اضافه کردیم یک فلش مموری ۶۴ گیگابایتی است که بسیار آسان نیز mount خواهد شد.
% mkdir /mnt/usb % sudo chown -R pi:pi /mnt/usb % sudo mount /dev/sda1 /mnt/usb -o uid=pi, gid=pi
اما اگر میخواهید تا در هنگام بوت به صورت اتوماتیک mount شود نیاز دارید تا فایل /etc/fstab را همانند زیر ویرایش کنید :
/dev/sda1 /mnt/usb auto defaults,user 0 1
ما کمی فراتر رفتهایم و میخواستیم اوضاع به گونهای باشد که فلش مموری از هر ۳ node دیگر نیز قابل دسترسی باشد. برای اینکار ما از NFS و autoFS استفاده کردیم؛ برای اینکار نیاز داریم تا nfs client را بر روی هر ۴ دستگاه نصب کنیم.
% sudo apt-get install nfs-common
و در زیر شاخههای سیستم اصلی نیاز داریم تا mount point مناسبی را نیز ایجاد کنیم :
% sudo mkdir /mnt/nfs % sudo chown -R pi:pi /mnt/nfs
و سپس در node شماره ۰ یا همان سیستم اصلی نیاز داریم تا nfs server را نصب کنیم
% sudo apt-get install nfs-server
سپس فایل /etc/exports را نیز ویرایش میکنیم :
# /etc/exports: the access control list for filesystems which may be exported /mnt/usb rpi1(rw,sync) /mnt/usb rpi2(rw,sync) /mnt/usb rpi3(rw,sync)
برای اضافه کردن ۳ گره پجهت پردازش ها بعد از ویرایش این فایل نیاز داریم تا سرویس های RPC را ریستارت کنیم :
% sudo update-rc.d rpcbind enable && sudo update-rc.d nfs-common enable % sudo reboot
پس از ریبوت کردن میتوانید یکی از node ها را چک کنید تا معلوم شود آیا تنظیمات به درستی صورت گرفته است و میتوان به فلش مموری از طریق NFS در هر ۳ گره دسترسی داشته یا نه؟ پس از آن نیاز دارید تا فایل fstab را ویرایش کنید و همانند قبل دیسک ها را به آن اضافه کنید. پس از آن برای جلوگیری از مشکلات بوت شدن باید auto fs را نصب کنیم.
% sudo apt-get install autofs
سپس فایل /etc/auto.master را ویرایش کنید و خط زیر را به آن اضافه میکنیم :
/mnt/nfs /etc/auto.nfs
و پس از آن نیز فایل /etc/auto.nfs را ایجاد کرده و خط زیر را به آن اضافه کنید :
rpi0 rpi0:/mnt/usb
حال باید سرویس auto fs را ریستارت کنیم :
% sudo /etc/init.d/autofs restart.
اگر همه چیز به خوبی و بدون مشکل پیش برود و به دایرکتوری /mnt/nfs/rpi0 بروید باید دیسکی که به گره اصلی متصل شده است به صورت خودکار mount شود. میتوانید آن را چک کنید :
% df -h Filesystem 1K-blocks Used Available Use% Mounted on rootfs 14984668 2513228 11812356 18% / /dev/root 14984668 2513228 11812356 18% / devtmpfs 470416 0 470416 0% /dev tmpfs 94944 232 94712 1% /run tmpfs 5120 0 5120 0% /run/lock tmpfs 189880 0 189880 0% /run/shm /dev/mmcblk0p1 57288 19448 37840 34% /boot rpi0:/mnt/usb 60467008 64 60466944 1% /mnt/nfs/rpi0
و اگر آن را در این لیست مشاهده کردید بدین معنی است که دیسک به درستی متصل شده است.
چراغ چشمکزن
از آنجایی که یک blinkstick نیز به زیبایی بیشتر رزبری های کلاستر شده ما اضافه میکند تصمیم گرفتیم یکی از آنها را نیز در cluster ها به کار ببریم. میتوانیم نرمافزار آن را با دستورات زیر نصب کنیم و سپس آن را از طریق usb به سیستم خود متصل کنید.
% sudo apt-get install -y python-pip python2.7-dev % sudo pip install blinkstick % sudo blinkstick --add-udev-rule
همچنین دستکاری کردن LED های RGB از داخل ترمینال نیز بسیار آسان است و میتوانید موارد زیبایی را با آن درست کنید.
همچنین میتوانید از blink stick برای نشان دادن وضعیت cluster ها و عملیات های در حال انجام در سیستم استفاده کنید. برای اینکار نیاز دارید تا از api مخصوص استفاده کرده و با زبان برنامه نویسی مورد علاقه خود اینکار را برای برد ها انجام دهید.
در قسمت بعد نیز کارهای جالبتری با رزبری پای های کلاستر شده انجام خواهیم داد و آموزش را با مواردی اضافه تر برای سیستم های کلاستر شده ادامه میدهیم.
آقای طباطبایی سلام .خسته نباشید
من مطالب آردوینو سایت را کامل دنبال میکنم ومطالب شمارا روزنامه وار نگاه میکنم.یه نقد کوچولو در مورد کار شما دارم.از هر هزار نفر شاید یک نفر لینوکس کار میکنه اصلا بحث مقایسه با ویندوز نیست.اون یک نفری هم که لینوکس کاره رزبری کار نیست.به نظر من مطالب شما به درد کاربلدها میخوره نه تازه کارها.ممکنه خواهش کنم اگه ممکنه فرض را بر این بگذاریدکه تقریبا تمامی افراد لینوکس کار نیستند وآموزشهاتون را ازمطالب پایه شروع کنید یا یک سایت پایه را معرفی کنید.من مطمئن هستم با تمام زحماتی که شما میکشید شاید تو ایران ۲۰،۳۰ نفری بتونن از مطالب خوب شما استفاده کنن.
باز هم کمال تشکر را اززحمات شما دارم.
درود
ممنون از اینکه نظرتون رو بیان کردید این باعث میشه که ما تلاش کنیم و نیازهای کاربران را بهتر شناسایی کنیم و مطالب را بر مبنای آن بسازیم و خیلی خوشحال شدم که صادقانه نظر خودتون رو بیان کردید؛ کمی دیر بهتون پاسخ دادم اما سعی کردم بهترین جواب رو با خودم داشته باشم؛ همچنین برنامههایی بر مبنای نظر شما در نظر گرفتم.
در زمینه مقایسه کاربران لینوکس و ویندوز کاملا حق با شماست اما در زمینه رباتیک موضوع کاملا برعکس است رباتیک مبحثی است شدیداً وابسته به لینوکس و در مواردی همچون هوش مصنوعی لینوکس قدرت خود را به نمایش خواهد گذاشت؛ بنابراین سعی داریم دیجی اسپارک را پایگاهی تخصصی کنیم برای آموزشهای الکترونیکی و رباتیک و همینطور که میدونید یادگرفتن لینوکس برای این موارد هم نیاز میشه و حتی برای برنامه نویسی و کارهای جانبی نیز لینوکس بهترین ابزار هارو برای اینکار ارائه میده. به همین جهت آموزشهایی که میگذاریم قشر خاصی از کاربران رو شامل میشه که در زمینههای نامبرده شده فعالیت دارند و برای بهتر شدن هر روزشون توی پروژه ها و کاربا دستگاهها همیشه تلاش میکنیم.
تیم دانشجوکیت نظر ویژه ای هم به دستگاه های embeded مث رزبری داره و رزبری رو اگر تست کرده باشید بهترین سیستم عامل هایی که میتونید روی اون داشته باشید لینوکسی ها هستن و ویندوز عملا در رزبری کار بسیار خاصی انجام نمیده.
سعی می کنم یک سری آموزش های پیوسته در این زمینه را شروع کنم با دیدگاه کاربران مبتدی و در این آموزشها لینوکس را از پایه و شروع آموزش بدم و تا جایی که امکان و تواناییشو داشته باشم در این موضوعات پیش خواهم رفت.
بازهم تشگر میکنم از اینکه نظرتون رو بیان کردید و منتظر آموزشهای پایه تا پیشرفته ما در مبحث لینوکس باشید 🙂
سلام دوست عزیز
من مدت ۳ سال تخصصی روی رازبری کار کردم و کارگاه و ورکشاپهای زیادی برگزار کردم که البته خارج از ایران بوده . برای تعطیلات به ایران امدم و وقتی دیدم که این سیستم هم به ایران امده با همکاری یکی از دوستان یک مجموعه فیلم آموزشی فارسی که از سطح مبتدی هست رو شروع کردیم که به زودی کار تدوینش تمام خواهد شد. که من اینجا اطلاع رسانی خواهم کرد.
در ضمن اگر بتوانید یک ورکشاپ گروهی را هماهنگ کنید من میتوانم تدریس کنم . البته تا قبل از رفتنم .
اگر مایل بودید به فیس بوک تخصصی من هم میتوانید ارتباط داشته باشید.
سلام خدمت شما دوست عزیز
خوشحال میشیم اگه زمینه ها همکاری ما و شما فراهم بشه و از این موضوع استقبال خواهیم کرد.
و پیشنهاهد هایی که ارائه خواهید داد رو بررسی میکنیم.
سلام ممنون از مطلب خوبتون ولی به نظر من یه مشکلی که داره اینه که کارهارو اصلا دقیق توضیح ندادید در کل آموزش که این درک مطلب رو بسایر سخت میکنه به نظرم اگر به جای یک توضیح و آموزش کلی ریز جزئیات رو هم مینوشتید مطلب بسیار درکش راحت تر میشد
با سلام و تشکر از شما
این آموزش قسمت دوم است. لطفا لینک زیر را هم بررسی کنید.
آموزش کلاستر رزبری پای
سلام
آیا می شود به جای رازبری ها از لینوکس روی یک کامپیوتر مجزا استفاده کرد
درود برشما
بله میتوانید این کار را انجام دهید. ولی دقت داشته باشید که برد رزبری پای یک امبدد سیستم است و با توجه به قیمت تمام شده و نوع تراشه مناسب برای کاربریهای خاص است. کلاستر کردن این برد باعث میشود که قدرت خروجی این برد افزایش یابد و کاربرد گسترده تری داشته باشد.
سلام
یه سوال داشتم
مو روی همه ی برد ها سیستم عامل میریزیم درسته؟
بعد بخوایم روش ماینینگ انجام بدیم
لازمه ک طبق اون اموزش مانینگ روی هر برد انجام بدیم یا فقط روی هد نود لازمه انجام بدیم؟
سلام مجدد
روی همه بردها سیستم عامل قرار دارد ولی دسترسی شما فقط از طریق یک اینترفیس صورت میگیرد. اون سیستم عاملها روی بردها برای تنظیمات کلاستر هستند. سپس از طریق اینترفیس اصلی، موارد ماینینگ را اجرا میکنید.
سلام خسته نباشید می خواستم دو رزبری پای رو با هم شبکه کنیم توسط سوییچ غیر هوشمند دی لینک به نحوی که بتوانیم از یک رزبری به رزبری دیگر یک فایل را ارسال کنیم لطفا کمکمون کنید خواهشا
با سلام و تشکر از توجه شما
در این خصوص باید مشخص کنید که این اطلاعات به چه صورت قرار است ارسال شوند؟ آیا اطلاعات یک فایل منحصر به نرم افزار است؟ یا یک اسکریپت ؟ یا یک تصویر؟ یا یک سری فایل متنی ساده؟
ممنون من تا به حال با لینوکس کار نکردم ولی مطلب جالبی بود
با سلام
از توجه شما سپاسگزارم.
سلام خسته نباشید
ببخشید میشه کاری کرد که امکان کپی کردن از برد وجود نداشته باشه
مثلا وقتی ما یک پروژه تجاری درست میکنیم نمیخوایم راحت رم رزبری در بیارن ازش یک کپی بگیرن
یا از توی خود رزبری به سورس برناممون دسرسی نداشته باشن؟
با سلام
بله چنین کاری امکان پذیر است. روشهای مختلفی هم برای این منظور وجود دارد. به عنوان مثال ست کردن مک آدرس پردازنده هر بردی که طراحی میکنید با اسکریپتی که نوشتهاید. در این حالت با کپی کردن هم به هیچ نتیجهای نخواهند رسید. البته همانطور که گفتم روشهای مخلتفی وجود داد.
سلام من میخوام برای سیستم خانه هوشمند استفاده کنم میخواستم بدونم با این کار من به همه پایه های برد ها دسترسی دارم؟
یعنی اگر ۵ رزبری پای ۴ داشته باشم هرکدوم ۲۶ پایه GPIOداشته باشه ۱۳۰ تا GPIO دارم
با سلام
بله امکان پذیر است. ولی کلاستر کردن رزبری پای ارتباطی با خانه هوشمند ندارد.
سلام و عرض ادب
بنده یک اورنج پای دارم میخواستم بدونم با این روش شما ممکنه که اون رو وصل کنم به کامپیوترم تا به صورت همزمان به عنوان یک دستگاه واحد با کامپیوتر ازش قابلیت هاش و قدرت پردازشیش استفاده کنم یا نه ممنون میشم جواب بدید
با سلام
خیر چنین کاری امکان پذیر نیست و اصلا پردازش اورنج پای و کامپیوتر ارتباطی با هم ندارند.
سلام ضمن تبریک سال نو وآرزوی سلامتی و بهروزی برای شما و همه هموطنان عزیزم
خواستم از آموزشهای بسیار خوب شما در موارد گوناگون تشکر کنم
لطفا یک منبع آموزشی لینوکس ساده معرفی کنید
منظورم بیشتر اینست که در مورد کاربردهای گوناگون مزایا ومعایب آن وخصوصا نحوه کار با پینهای i/o
در بردها از طریق لینوکس توضیح دهد.
با تشکر آموزشهای مفید وسودمند شما
سلام و سپاس از همراهی شما
برای اینکه لینوکس را به صورت اصولی آموزش ببینید، پیشنهاد میشود از دوره های معتبر استفاده کنید.
خسته نباشید بهتر نیست اخره هر مطلبی که چند قسمته ، لینک قسمت های قبل و بعدم بذارید ؟! ادم قولنج میکنه تو سایتتون
با سلام
تشکر از شما، بله درست میفرمایید، پیگیری میکنیم.