دسترس پذیری بالا در OpenStack (بخش دوم)

کلاسترینگ (خوشه‌بندی) و کوارم (حد نصاب)

کوارم مشخص کننده حداقل تعداد گره‌هایی است که در یک کلاستر (خوشه) از گره‌های افزونه بایستی فعال باشند تا آن کلاستر از گره‌ها به فعالیت خود ادامه دهد. هنگامیکه یک گره از کار می‌افتد و کنترل به دیگر گره‌ها داده می‌شود، سیستم بایستی طمینان پیدا کند که داده‌ها و فرآیندها، صحیح و یکسان باقی می‌مانند. به منظور مشخص کردن این مهم محتویات گره‌های باقی مانده مقایسه می‌شود و اگر اختلافی در آن‌ها دیده شود، قانون الگوریتم رأی اکثریت اجرا می‌شود.

به همین علت، تعداد گره هر کلاستر در یک محیط دسترس پذیری بالا بایستی عددی فرد باشد، و کوارم بیشتر از نصف تعداد گره‌ها تعیین شود. اگر چندین گره از کار بیفتند به طوریکه سایز کلاستر به کمتر از مقدار کوارم برسد، این کلاستر متوقف می‌شود.

Continue reading “دسترس پذیری بالا در OpenStack (بخش دوم)”

دسترس پذیری بالا در OpenStack (بخش اول)

در این مجموعه پست آموزشی قصد دارم مفاهیم دسترس پذیری بالا و نحوه اعمال آن در معماری OpenStack را بیان کنم.

دسترس پذیری بالا در سیستم‌ها غالباً با هدف کاهش دو مورد زیر صورت می‌پذیرد:

۱- خرابی سیستم: هنگامی رخ می‌دهد که کاربر با دردسترس نبودن سرویس در یک زمان مشخص مواجه می‌شود

۲- از بین رفتن داده: پاک شدن یا از بین رفتن تصادفی داده

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

افزونگی و غلبه بر نقصان

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

Continue reading “دسترس پذیری بالا در OpenStack (بخش اول)”

همایش آینده شغلی (با نگاه تخصصی به دنیای سیستم‌عامل، شبکه و امنیت)

همایش رایگان آینده شغلی ۳ (با نگاه تخصصی به دنیای سیستم‌عامل، شبکه و امنیت) در تاریخ ۱۹ تیر ماه ۱۳۹۶ در لایتک دانشگاه شریف برگزار می‌شود. در این همایش من با موضوع “تغییرات آب و هوا: تأثیر ابر بر مشاغل فن‌آوری اطلاعات” صحبت خواهم کرد.

اطلاعات بیشتر در وبسایت لایتک

همایش آینده شغلی (با نگاه تخصصی به دنیای سیستم‌عامل، شبکه و امنیت)

رایانش ابری به زبان ساده

به زبان ساده، رایانش ابری (Cloud Computing) ارائه سرویس‌های رایانشی-سرورها، ذخیره‌سازها، پایگاه داده‌ها، شبکه، نرم‌افزار، تحلیل‌ها و موارد بیشتر-از طریق اینترنت است. به شرکت‌هایی که این سرویس‌های رایانشی را ارائه می‌دهند، ارائه کننده ابر گفته می‌شود و به طور معمول، هزینه سرویس‌های رایانش ابری را براساس میزان استفاده محاسبه می‌کنند، کاملاً مشابه سرویس‌های همگانی آب، برق و گاز در منازل.

در ادامه به ارائه مطالب دقیق‌تری در این حوزه می‌پردازیم.

Continue reading “رایانش ابری به زبان ساده”

مزایای استفاده از داکر

داکر چه مشکلاتی را حل می‌کند؟

به طور خلاصه داکر پاسخی به مسائل زیر است که در ادامه به توضیح آن‌ها می‌پردازم.

  • حل مشکل پیش‌نیاز بین نرم افزارهای مختلف سیستم
  • افزایش قابلیت انتقال نرم افزار
  • محافظت از سیستم

چرا داکر مهم است؟

داکر یک لایه انتزاعی است که کار کردن با کانتینرها را ساده و برای همه فراهم می‌کند. استفاده از آن زمان، هزینه و انرژی را بهینه می‌کند.

وجود داکر جامعه نرم‌افزار را مجبور کرده است تا به سمت کانتینرو داکر حرکت کنند و بدین ترتیب سازمان‌های بزرگ به جایی که ابزار خود را توسعه دهند، در توسعه ابزار متن باز داکر مشارکت می‌کنند.

اهمیت سوم این است که داکر بستری مشابه اپلیکیشن‌های موبایل را برای کامپیوترهای شخصی فراهم کرده است. و حتی یک درجه از آن بالاتر، چرا که مالتی پلتفرم و متن باز است.

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

کجا و چه وقت از داکر استفاده می‌شود؟

تقریبا هر برنامه کاربردی در کانتینر اجرا می‌شود، که می‌تواند شامل وب سرور، ایمیل سرور، پایگاه داده و غیره شود. برنامه‌های دسکتاپ مانند مرورگر وب، پردازشگر کلمه، کلاینت‌های ایمیل یا ابزارهای دیگر نیز کاملا قابل اجرا هستند. حتی برنامه‌های کاربردی قابل اطمینانی که از اینترنت دانلود شده‌اند امکان دارد به سیستم آسیب وارد کنند. اجرای این برنامه‌ها در کانتینر می‌تواند موجب کاهش ریسک شود.

انجام کارهای روزمره در بستر داکر موجب حفظ نظم محیط سیستم عامل می‌شود. بدین ترتیب می‌توانید به سادگی نرم‌افزارها را نصب و حذف کنید.

بایستی در نظر گرفت اجرای برنامه‌هایی که نیاز به دسترسی کامل به سیستم دارند در کانتینر دردی را دوا نمی‌کند! کانتینرها راهکار جامع امنیتی ارائه نمی‌کنند ولی از تعداد زیادی انواع حمله جلوگیری می‌کنند.

نگاه مقدماتی به OpenStack

OpenStack چیست؟

OpenStack به مجموعه‌ای از ابزارهای نرم‌افزاری گفته می شود که به منظور ساختن و مدیریت کردن زیرساخت‌های رایانش ابری شامل ابرهای خصوصی و عمومی بکار می‌رود. این پروژه‌ی متن باز به کمک تعداد زیادی کمپانی بزرگ که سال‌هاست در زمینه‌هایی مانند میزبانی، شبکه و… فعالیت دارند و هزاران توسعه دهنده پیش می‌رود و توسعه داده می‌شود.

مقدمه‌ای بر OpenStack

OpenStack این امکان را برای کاربران خود فراهم می‌کند تا ماشین‌های مجازی را (که در ادبیات ابر به آن‌ها نمونه می‌گوییم) به منظور مدیریت یا انجام وظایف مختلف در محیط ابری با مشخصات سخت‌افزاری و شبکه‌ای دلخواه در مدت زمان بسیار کم بسازند. در این محیط مقیاس پذیری افقی به معنای افزودن و کاهش ماشین‌های مجازی بنا به بارکاری در حال اجرا به راحتی امکان پذیر است. به طور مثال فرض کنید یک سرویس تحت وب مانند وردپرس روی ۵ ماشین مجازی در حال پاسخ به درخواست کاربران می‌باشد، اگر در این سناریو تعداد درخواست‌های وارد شده به این سرویس بیشتر از حد آستانه‌ای که قبلاً تعریف شده است شود یک ماشین مجازی به این مجموعه اضافه و تعداد ماشین‌های در حال سرویس دهی را به ۶ عدد می‌رساند. و به طور مشابه هنگامیکه بار کاری به حالت قبل برگردد و در یک بازه زمانی مشخص از حد آستانه کمتر بماند ماشین ساخته شده بعد از این مدت مشخص پاک و پیکربندی محیط بروزرسانی می‌شود.

Continue reading “نگاه مقدماتی به OpenStack”

How to manage docker containers with OpenStack

Although you may not gain full capabilities of docker when you mix it with OpenStack, (like network capabilities and …) it’s a suitable solution to get benefit of OpenStack Dashboard in order to manage containers.

Here I’m going to teach you how you can use docker as an hypervisor in OpenStack Kilo with help of nova-docker on CentOS 7.

After setting up OpenStack, first thing is first, installing docker itself:

# yum install docker
# systemctl start docker
# systemctl enable docker

And fetching nova-docker repository from git:

# git clone http://github.com/stackforge/nova-docker.git
# cd nova-docker
# git checkout -b kilo origin/stable/kilo
# git branch -v -a
* kilo d556444 Do not enable swift/ceilometer/sahara
master d556444 Do not enable swift/ceilometer/sahara
remotes/origin/HEAD -> origin/master
remotes/origin/master d556444 Do not enable swift/ceilometer/sahara
remotes/origin/stable/icehouse 9045ca4 Fix lockpath for tests
remotes/origin/stable/juno b724e65 Fix tests on stable/juno
remotes/origin/stable/kilo d556444 Do not enable swift/ceilometer/sahara

And now installing the package:

# python setup.py install

We need to adjust suitable permissions:

# chmod 666 /var/run/docker.sock
# mkdir /etc/nova/rootwrap.d

in nova.conf set compute_driver to:

compute_driver = novadocker.virt.docker.DockerDriver

and change the firewall_driver to:

firewall_driver=nova.virt.firewall.NoopFirewallDriver

then, you need to create docker.filters file:

# nano /etc/nova/rootwrap.d/docker.filters

and paste:

# nova-rootwrap command filters for setting up network in the docker driver
# This file should be owned by (and only-writeable by) the root user
[Filters]
# nova/virt/docker/driver.py: 'ln', '-sf', '/var/run/netns/.*'
ln: CommandFilter, /bin/ln, root

add following line to /etc/glance/glance-api.conf:

container_formats=ami,ari,aki,bare,ovf,ova,docker

restart corresponding services:

# systemctl restart openstack-nova-compute
# systemctl restart openstack-glance-api

Now, it’s time to download a docker image and upload it to glance:

# docker pull tutum/ubuntu:latest

# docker save tutum/ubuntu:latest | glance image-create --name "tutum/ubuntu:latest" --disk-format raw --container-format docker --visibility public --progress

Note that glance image name must be the same as docker image name.

Last but not least, create an instance from dashboard and open instance’s log tab to find out the password, and make ssh connection to the container.

openstack_docker

21th session of OCCC

21th session of OCCC (Open Community of Cloud Computing) will be held at The Institute of Information and Communication Technology of Iran on Tuesday afternoon between 17:30 to 19:30.

In this session I am going to talk about docker, which became a hot topic these days in Project Management and Cloud Computing.

This session will be covered online by e-seminar.

docker_meeting