برچسب: centos

  • اضافه کردن یک نود جدید به glusterfs

    وقتی سه سرور داشته باشید که هر کدام از آنها برای مثال سه ترابایت فضای ذخیره داشته باشند و بخواید همه این فضاها رو یکی کنید و به یک استوریج نه ترابایتی برسید یکی از گزینه‌های خوب  گلاستراف‌اس است. در سنت‌اواس به راحتی میشه ورژن‌های مختلف این برنامه رو نصب کرد. حالا فرض رو بگذارید که زمان گذشته و قصد کردیم سرور چهارم (s4) رو به کلاستر (s1,s2,s3) اضافه کنیم. برای اینکار باید در یکی از سرورهایی که از قبل عضو کلاستر بودند، کامند زیر رو اجرا کنید.

    اما اگر مثل من بدشانس باشید همین دستور خیلی ساده مشکل ساز میشه و عضو جدید به درستی کار نخواهد کرد.

    وقتی لاگ مربوط به گلاستر در سرور s4 رو ببینید همچین پیغامی خواهید دید.

    که با زبون سربسته داره میگه نود جدید که قصد اضافه کردن اون رو به کلاستر داشتیم نتونسته اطلاعات لازم رو از نود s2 بگیرد! نود s2 همون نودی بوده که از قبل عضو کلاستر بوده و از داخل اون قصد داشتیم نود جدید رو عضو کلاستر کنیم.

    دلیل این اتفاق این بود  که همه نودهای کلاستر ورژن 3.12.5 بودند اما در زمانیکه قصد اضافه کردن عضو جدید به کلاستر رو داشتم، گلاستر centos به نسخه 3.12.6 آپگرید شده و دقیقا همین موضوع باعث مشکل میشه. برای اضافه کردن نود جدید به کلاستر باید دقت کنید که ورژن گلاستر سرور جدید و قدیم دقیقا یکی باشد.

    پروسه‌ی دانگرید در centos برخلاف اوبونتو می‌تونه آدمیزاد رو زخم کنه و اساسا بخاطر همین موضوع شروع به نوشتن این راهنما کردم.

    کاری که  برای حل این مشکل انجام دادم این بود که پکیج‌های rpm  گلاستر رو از مسیر یکی از نودهایی که عضو کلاستر بود (s2) رو به سرور جدید انتقال دادم.

    بعد در سرور جدید (s4) به شکل زیر یک مخزن لوکال ساختم.

    و بعد مخزن رو باید به سنت‌او‌اس به شکل زیر معرفی کنیم.

    قبل از نصب گلاستر ورژن قدیمی، بایستی اول اون رو از کلاستر حذف کنیم
    برای اینکار کافیه از یکی از سرورها که عضو کلاستر هستند (s2) کامند زیر رو بزنید.

    بعد در سرور s4 که قراره ورژن اون رو دانگرید کنیم بعد از استاپ سرویس گلاستر در مسیر زیر هر چی فایل هست رو پاک کنیم.

     

    گلاستر برای نصب نیاز به یک پکیج به اسم userspace-rcu داره که ورژن اون  باید 0.10 به بالا باشد. برای نصب این پکیج بهتره از همونی که داخل مخزن گلاستر 3.12.6 موجوده بهره ببریم.

    وقتی که میخوایم پکیج های گلاستر 3.12.6 رو پاک کنیم یادمون نمیره که userspace-rcu رو نگه داریم وگرنه به مشکل خواهیم خورد.

    حالا نوبت به نصب دوباره گلاستر می‌رسد. چون یک مخزن اضافه کردیم که  پکیج‌های گلاستر 3.12.5 داخلش موجوده اینبار ورژن قدیمی نصب خواهد شد.

    و دوباره نود رو به کلاستر جوین میکنیم.

    و در آخر مطمئن میشیم که همه چیز خوب پیش رفته باشد.

     

     

     

  • کابوس واقعی

    یه بابایی اومده یکی از فایل‌های خیلی مهم لینوکس رو به اسم libkeyutils.so.1.9 بررسی کرده (منبع خبر) و به این نتیجه رسیده که درون این فایل یه آی‌پی به آدرس 78.47.139.110 وجود داره! که همینجوری هم نمی‌شه دید و چشم بصیرت می‌خواد.

    ssh

    آی‌پی هم اشاره داشته به سایت rubop.com که مشخصات این دامین هم این شکلیه.

    بعد هم دیدن که خیلی راحت می‌تونه طرف از طریق ssh وصل شه به ماشین دیگه ای و گویا در کرنل‌های سه به بالا این مشکل وجود نداره پس خیلی از دیستروهای سنت او اس احتمالا این مشکل رو خواهند داشت. آدرسی که این فایل وجود داره در روت  سیستم عامل و داخل فولدر lib64 هست. که اتفاقی دیدم تو یکی از سرورهایی که دست منه هم این فایل وجود داره

    منتها خیلی خوب و خوشحال از این کشف بزرگ اومدم این فایل رو پاک کردم! و بعد هم exit و بعد یک ساعت تلفن زنگ خورد که فلانی فلانی چیکار کردی سرور رو؟ همه سایتا داون شدن :) که دیدم ای دل غافل! همه چی زیر سر این فایل ریزه میزه ست و خلاصه به کمک kvm و ریموت وصل شدن به سرور انگاری که پشت مانیتور نشسته باشی تونستم وارد سیستم عامل بشم و جالب بود که حتی دستورای ابتدایی مثل wget هم از کار افتادن و خلاصه همه اینا کابوسی شد برای من تا اینکه با هر مکافاتی بود تونستم سیستم رو درست کنم!

    اما  برای اینکه از شر این موجود و این فایل که آخرش پسوند 1.9 داره راحت بشید اول یه سرچی بزنی که اصلا این فایل وجود داره توی این فولدر lib64 و بعد هم مطمئن شید که جای دیگه‌ای نباشه.

     حالا فایل مشکوک رو پاک می‌کنید به همراه شورتکاتی که ساخته و بعد دوباره شورتکات رو از فایل سالم libkeyutils.so.1.3 می‌سازید. دقت کنید در نهایت باید فایل libkeyutils.so.1 رو حتما داشته باشید در غیر اینصورت هیچ چیزی کار نمی‌کنه و می‌شید مثل من! بعد از اینکه شورتکات رو ساختید سرویس sshd رو هم ریست بدید و در نهایت کرنل رو آپدیت کنید (اگر داشتید!) و بعد هم ریست می‌دید سرور رو.

    البته یک سری گفتن حتی با پاک شدن این فایل هم معلوم نیست مشکل حل می‌شه یا نه ولی خب با تنظیمات فایروال و اینکه از ssh استفاده می‌کنه (از پورت‌های غیر استاندارد) نباید مشکل خاصی پیش بیاد.

    توضیحات خیلی خوب و کاملتری رو می‌تونید از اینجا گیر بیارید.