پر شدن دایرکتوری و کرش کردن سرور

بعد از اینکه توی سرور امکان لاگین وجود نداشت (سرویس freeIPA) با کنسول وصل شدم و متوجه شدم که پارتیشن /var/log/auditlog پر شده. بله یک پارتیشن پر شده و سرویس از کار افتاده بعد از مدتی سرور ریبوت و دیگه بالا نمیومد.

با crontab -e یه جاب نوشتم که پریودیک این مسیر رو خالی کنه.

تنظیمات SElinux و مشکلاتی که برای داکر داره

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

توی اینترنت گفته بودن که درایور رو عوض کنیم و … اما در نهایت متوجه شدم چون selinux روی premisive بوده به داکر اجازه داده نمیشه که از دیسک با LVM کانفیگ شده استفاده کنه. اروری که نشون میده:

این ارور رو باید با کامند dockerd --debug ببینید

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

حالا توی فایل /etc/selinux/config کافیه اونو disable کنی و ریبوت. داکر دوباره start میشه.

استقرار پروژه جنگو با بهینگی بالا

در پروژه ای که در بستر داکر روی لینوکس پیاده سازی شده است نرم افزار از performance قابل قبولی برخوردار نیست. بخشی از نرم افزار با websocket کار میکند اما اکثرا در بستر http. دیتابیس، و بخشهای دیگر مثل celery, rabbitMQ و … هر کدام یک کانتینر هستند.

ایرادات استقرار یا deployment:

جنگو در یک کانتینر با دستور runserver اجرا شده است.

کل پروژه از Daphne به عنوان اپلیکیشن وب سرور ASGI استفاده میکند در حالی که بخش کوچکی از نرم افزار asyn است و با websocket کار میکند.

وب سروری مثل Nginx یا Apache وجود ندارد که فایلهای استاتیک را ارائه دهد.

بهتر بود در بخشهای Sync از اپلیکیشن سروری مثل uWSGI که یک WSGI هست استفاده میشد.

بنابراین معماری به شکل زیر تغییر یافت:

NGINX درخواست های websocket رو به Daphne و سایر درخواست ها را به uWSGI ارسال میکند. فایل های کانفیگ از قرار زیر است.

compose.yml

nginx.conf

DockerfileNginx

DockerfileNasim

لینک های مرتبط:

لینک 1

لینک 2

لینک 3

لینک 4

لینک 5

افزایش ظرفیت پارتیشن ها توی LVM

توی یه سرور RHEL که از LVM برای مدیریت دیسک و پارتیشن استفاده میشه، لازم شد که حجم رو افزایش بدیم. یه دیسک sdb داریم که میخایم به 2 تا پارتیشن اضافه اش کنیم. LVM این کار رو انجام میده بدون اینکه پارتیشن ها نیاز به فرمت داشته باشن و داده های قدیمی از دست برن. یه چیزی مثل سرویس های ابری که هر وقت بخایم منابع اضافه میکنیم.

قبل از افزایش حجم وضعیت اینطور بود:

همینطور که میبینید /home و / هر کدوم 40 گیگابایت هستن که باید زیاد بشن.

میبینیم که /dev/sdb به دیکسها اضافه شده اما پارتیشن بندی نشده.

همینطور که میبینیم sdb اصلا به هیچ volume group ای از LVM اضافه نشده پس معلومه که قابل استفاده است.

میبینیم که یه logical volume داریم vg0 که یه دونه pv هم داره که در واقع همون sda3 هست که قبلا دیدیم و بازم مطمثن شدیم که sdb استفاده نمیشه

یه نگاه مجدد به logical volume ها میندازیم.

با دستور بالا sdb رو به یه phisical volume تعریف کردیم که بتونیم توی LVM ازش استفاده کنیم. در وا

میبینیم که sdb اضافه شده.

حالا sdb رو به volume group vg0 اضافه میکنیم که بتونیم به logical volume ها اضافه اش کنیم.

همینطور که میبینیم اضافه شده. الان vg0 حدود یک ترابایت خالی داره.

حالا 512 گیگابایتش رو به / یا همون root اضافه کردیم.

از فضای خالی باقیمانده بقیه شو به /home اضافه کردیم.

همینطور که میبینید / و /home حجمشون زیاد شده.