اینم یه تجربه پراکنده دیگه!

همینطور که قبلا نوشته بودم(لینک، لینک، لینک) من تقریبا دوسال میشه که یه سیستم تمام وقت روشن توی خونه دارم که باهاش کارهای بسیاری میکنم که لیست اون کارها از این قراره:

  1. یه ماشین مجازی کوچک دارم و pfsense مسئولیت مسیریابی خونه رو به عهده داره
  2. روش minidlna دارم  که مسئولیت تفریحات فیلمی خونه رو برعهده داره
  3. روش یه samba server دارم که مسئولیت اشتراک فایل رو برعهده داره
  4. روش یه seafile سرور دارم که مسئولیت بک آپ اتوماتیک از تصاویر تلفن‌ها و اطلاعات مهم لپ تاپ‌ها رو برعهده داره.
  5. روش یه deluge دارم که شبها تورنتها رو دانلود و آپلود میکنه
  6. روش یه سرور taskwarior دارم که نقط بک آپ مدیریت لیست کارهایی هست که در هفته انجام میدم

کانفیگ سیستم هم اصلا جدید نیست و یه سیستم میشه گفت بسیار قدیمیه

  1. سی پی یو: AMD sempron 3000+ AM2
  2. رم : ابتدا ۱ گیگ و سپس ارتقا به ۲٫۵ گیگ
  3. هارد: ۵۰۰ گیگ
  4. سیستم عامل: اوایل ubuntu server و mint

این سیستم تقریبا با ثبات بسیار خوبی این دو سال گذشته رو خدمت رسانی کرده و من ازش راضیم خدا هم ازش راضی باشه! توی این دو سال من تجربه بسیاری خوبی در مورد مدیریت یه سیستم تنها به کمک ssh داشتم. همچنین توی این دوسال خانمم هم به مدت کوتاهی از این سیستم به عنوان دسکتاپ استفاده کرده.

اما این سیستم بعد از دوسال نیاز به بروزرسانی داره و من میخوام به دلایل زیر این سیستم رو از نظر سخت افزاری و نرم افزاری ارتقا بدم

  1. پرشدن هارد بر اثر دانلود زیاد
  2. نیاز به راه‌اندازی یک NAS به دلیل نزدیک شدن به پایان عمر مفید هارد دیسک‌های اکسترنال(حدودا سال ۸۷ خریداری شده اند)
  3. یادگیری تکنولوژی‌های جدید
  4. بهینه سازی سیستم فعلی

اما طرح من برای بهینه کردن این سیستم از این قراره که:

  1. علی الحساب میخوام سه تا هارد دو ترا به سیستم اضافه کنم که یکیش بک آپ اون دوتای دیگه باشه. همچنین نمیخوام از کارت raid استفاده کنم و ترجیحم اینه که از سیستم فایل zfs استفاده کنم.
  2. میخوام بتونم روی این سیستم از مجازی سازی سبک یا همون container های استفاده کنم که این استفاده هم کلی چیز جدید به من یاد میده
  3. میخوام سیستم عامل رو سبک کنم و میزان مصرف منابع کاهش بدم. برای این کار به نظر میرسه باید از لینوکس به یه سیستم عامل دیگه مهاجرت کنم که این مهاجرت کلی مطالب جدید به من یاد میده
  4. در صورتی که پولم برسه میخوام یه ssd بخرم و اون رو به عنوان cache به zfs اضافه کنم,

چالشهای پیش روم هم ایناست:

  1. zfs یک سیستم فایل بسیار قوی هست اما من فکر نمیکنم که هنوز به اندازه کافی اون رو بلدم که بخوام بهش اعتماد کنم و کل هاردهام رو به اون بسپارم
  2. zfs روی سیستم عامل freebsd و illumos و حتی linux وجود داره اما من نمیدونم کدوم پیاده‌سازی بهتر و با ثبات تره. البته باید بگم که پیاده‌سازی‌های موجود روی این سیستم‌ها قدیمی و با ثبات هستن
  3. تکنولوژی مجازی سازی سبک یا container‌ ها همنطور که اینجا هم بررسی کردم روی لینوکس freebsd و illumos با هم متفاوته من هیچ دید عملیاتی ندارم که کدوم بهتره.
  4. هر کدوم از این سیستم‌های یه سری کارها رو راحت کردن مثلا freebsd با freenas و nas4free کار رو برای پیاده‌سازی آسون zfs راحت کرده و شیر کردن و تورنت بازی این چیزا خیلی ساده شده. همچنین illumos با یه محصول به نام smartos مجازی سازی و مجازی سازی سبک و مدیریت اونها رو بسیار ساده کرده. که این انتخاب رو سخت میکنه

حالا با توجه به اینکه انتخاب‌های من کم نیستن بایستی یکم بیشتر بررسی کنم و انتخاب کنم.

همین!

اینم یه تجربه پراکنده دیگه!

الوعده وفا! گفته بودم ایده‌هام رو مینویسم اینم اولین ایده.

خب اگه خواننده وبلاگ من بوده باشید، میدونید که من یه سری تکنولوژی‌های عجیب غریب توی خونه خودم پیاده‌سازی کردم. که ویژگی‌های زیر رو داره:

  • امکان file sharing داره
  • امکان پخش فایل‌های فیلم، صوت یا تصویر رو با استفاده از dlna داره.
  • امکان زمانبندی دانلود از طریق torrent رو داره که به درد خوره ‌های دانلود میخوره
  • من روی اون یه seafile نصب کردم که یه چیزی شبیه dropbox هست و فایل‌های مهم روی گوشی و لپ تاپم رو در چند نقطه backup میگیرم
  • همچنین آی پی من رو به صورت متناوب به  dynamic DNS گزارش میده و من میتونم از بیرون خونه به کامپیوتر خونه دسترسی داشته باشم.

حالا اگه کسی بتونه یه سیستم کوچک و ارزان تولید کنه که اول از همه یه واسط کاربری تو دل برو داشته باشه و این امکانات رو به کاربر نهایی بده احتمالا با اقبال عمومی مواجه میشه. پیشنهاد من واسه تولید این سیستم اینه:

  • استفاده از بردی مثل رزبری‌پای به عنوان اصل سیستم
  • نصب یک لینوکس خیلی سبک روی این سیستم
  • راه‌اندازی samba و مدیریتش توسط وب برای filesharing
  • راه‌اندازی minidlna یا سرویس‌های مشابه برای اشتراک فیل با تلوزیون‌های هوشمند
  • راه‌اندازی seafile و امکان تنظیم اون
  • امکان دانلود از torrent و لینک مستقیم رو داشته باشه
  • امکان اجرای دستور بصورت متناوب
  • امکان اتصال هارد دیسک یا هر سیستم usb دیگه به عنوان واسط ذخیره سازی
  • استفاده از یک usb hub برای افزایش تعداد هارد‌های متصل

از نظر من هزینه های تولید این سیستم به این شرحه

  • خرید برد با حدود ۲۰۰ هزار تومن
  • نوشتن واسط وب برای این سیستم که به نظر من بایستی با زبانی مثل python نوشته بشه که راحت بشه هم با سیستم عامل صحبت کرد و هم واسط وب ساخت. هزینه تخمینی تولید این نرم افزار از دید من عددی بین ۱۰ میلیون تومان تا ۱۵ میلیون تومان هست. یعنی اگه من به عنوان یه شرکت میخواستم این پروژه رو انجام بدم حداقل این عدد رو میگرفتم.
  • هزینه طراحی کیس و بسته بندی محصول که ایده‌ای ندارم چقدر میشه
  • هزینه کارت اس دی برای هر محصول

چالش‌های اساسی ساخت این سیستم

  • نیاز به رقابت با محصولات مشابه مثل set-top box و یا Western Digital TV و یا محصولات مشابه
  • نبود نیروی متخصص کافی برای تولید چنین محصولی
  • عدم وجود بازار فعلی برای این محصول. با توجه به شناخت شخصی من از بازار همین الان محصولات Western Digital بازار قابل توجهی ندارن
  • سخت بودن بازار رقابتی واردات محصولات الکترونیکی
  • در صورت مشتری داشتن نیاز به تعداد زیادی نیروی پشتیبانی برای محصول هست.

راه‌ بردهای جایگزین:

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

امیدوارم این محصول به درد کسی بخوره و من منتظر نظرات شما اینجا هستم

همین!

توی پست قبلم در مورد جایگزین های سرویس ذخیره سازی فایل در فضای ابری (Cloud) مثل Dropbox یه مطلب نوشتم. حالا یکی از خواننده‌ها بسیار معدود این بلاگ گفته بود اگه با bittorrent sync کار کردم تجربم رو بنویسم. من هم که عمرا بتونم به یه چنین درخواستی جواب نه بدم به همین خاطر الان دارم مینویسم

کل راه اندازی خیلی خیلی ساده بود. تست من روی لپ تاپم با سیستم فدورا ۱۸ نسخه ۶۴ بیتی و یه پی سی قدیمی که کار فایل سرور خونه رو انجام میده با سیستم عامل اوبونتو ۱۲٫۰۴ نسخه ۶۴ بیتی تست کرد. تنها کاری که کردم از سایت اصلی فایل مربوطه رو دانلود کردم و اجرا کردم. تنها نکته قابل اشاره اینه که شاید توی لینوکس این فایل‌(btsync) دسترسی اجرایی نداشته باشن که شما باید این دسترسی رو براشون ایجاد کنید.

با انجام این کار روی آدرس http://my_ip_adress:8888/gui سرویس btsync اجرا شده و آماده است.

صفحه اصلی btsync

صفحه اصلی btsync

پس از اینکار حالا باید یه فولدر رو انتخاب کنید و براش یه secret بسازید. برای این کار کافیه رو دکمه generate کلیک کنید.

انتخاب فولدر btsync

انتخاب فولدر btsync

خب حالا کافیه همین کار رو در سمت دیگه (کامپیوتر دومتون) انجام بدید و این دفعه بجای زدن دکمه generate کافیه که secret که در کامپیوتر اول درست کردید رو اینجا هم وارد کنید. و کار تمامه

البته شما سطوح دسترسی هم دارید که میتونید اون رو بصورت که تو شکل زیر میبینید کنترل کنید. که شامل نحوه بروزرسانی و امکان دسترسی فقط خواندنی به فولدر یا حتی تغییر secret فعلی به منظور حذف دسترسی افرادی که الان دسترسی دارن به این فولد هست.

تنظیمات اولیه btsync

تنظیمات اولیه btsync

Selection_004

تنظیمات پشرفته btsync

 

من دوباره برگشتم با یه موضوع پراکنده دیگه!

خب خود من و شاید خیلیای دیگه از dropbox برای ذخیره سازی نیمه امن(به هر حال فایل دست یه نفر دیگس) فایلهای شون استفاده میکنن.
خب من توی این مدت به این فکر کردم که آیا میشه یه سرویس اینجوری بوجود بیاد که تقریبا همین سرویسها رو بده و خب به وضوح متن باز هم باشه. خب شروع کردم به گشتن یکی از بهترین جایگزین‌ها ownCloud بود. تنها یه ایراد کوچیک داره اونم اینه که شما یا باید به یه سرور دسترسی داشته باشید و گرنه روی هاستینگ‌های معمول به این راحتیا نصب نمیشه. دوم اینکه مساله افزونگی که من درست در این مورد اطلاع ندارم اما اطلاعات شما تنها روی یک سرور وجود داره و روی سرورهای دیگه بک آپ گرفته نمیشه. البته تا زمانی که وسیله‌های شما با همدیگه یکی باشن فایلها افزونگی کافی رو دارن

اما یه راه حل دیگه است که من بیشتر ازش خوشم اومد. اونم یه راه حل مبیتی بر معماری p2p هست. شرکت (یا بنیاد) bittorrent لطف کرده مبتنی بر پروتکل torrent یه سیستم غیر متمرکز اشتراک گذاری فایل و sync کردن فایلها بین دستگاه‌های مختلف شما ایجاد کرده بدون اینکه نیازی به سرور متمرکزی باشه. تنها نیازه که برنامه bittorrent sync رو روی کامپیوترتون نصب کنید و فولدری که میخواید رو مشخص کنید و با یه مشخصه تصادفی که برای اون فولدر تولید میشه میتونید بین تمام کامپیوترهاتون فایل رو به اشتراک بگذارید.

یه راه حل دیگه هم اخیرا توی سایت unixmen معرفی شده که اون هم استفاده از یه نرم افزار اپن سورس دیگه به اسم seafile هست.

با توجه به مواردی که من بررسی کردم به نظر میرسه راه‌حل‌های مناسبی برای جایگزین شدن با dropbox وجود داره که هم متن بازن هم مدیریتشون دقیق‌تره. ولی من ترجیح میدم از نسخه bittorrent استفاده کنم چون حداقل به زیرساخت خاصی نیاز نداره.