Maxscale چیست
Maxscale چیست
MariaDB MaxScale یک پراکسی پایگاه داده پیشرفته برای MariaDB و یکی از ملفه های اصلی MariaDB Platform است – ویژگی های مهمی مانند تأمین امنیت، در دسترس بودن ، مقیاس پذیری و خدمات یکپارچه سازی را میتوان برای این ابزار در نظر داشت.
MariaDB MaxScale برای پشتیبانی، از پلاگین ها با معماری قابل توسعه طراحی شده است که عملکرد آن را بالاتر از ی توزیع کننده بار گسترش می دهد مثلاً به یک فایروال پایگاه داده با پلاگین های داخلی برای چندین روتر ، فیلتر و پروتکل ، MariaDB MaxScale می تواند پیکربندی شود تا درخواست های پایگاه داده را بفرستد و پاسخ های پایگاه داده را بر اساس نیازها فنی اصلاح کند – برای مثال ، برای پوشاندن داده های حساس یا افزایش مقیاس درخواست های read.
عملیات فوروارد درخواست ها با استفاده از rule هایی مبتنی بر درک معنایی عبارات پایگاه داده (database statements) و نقش سرورها در خوشه backend پایگاه داده انجام می شود.
MariaDB MaxScale برای ارائه ، شفافیت در برنامه ها ، توازن بار و قابلیت دسترسی بالا طراحی شده است. MariaDB MaxScale دارای معماری مقیاس پذیر و انعطاف پذیر است
بسیاری از سرویس های ارائه شده توسط MariaDB MaxScale به عنوان ماژول های شی مشترک خارجی (shared object modules) بارگذاری شده در زمان اجرا پیاده سازی می شوند. این ماژول ها از یک رابط ثابت پشتیبانی می کنند و نقاط ورودی را از طریق ساختاری متشکل از مجموعه ای از اشاره گرهای عملکردی ارتباط می دهند. این ساختار “شی ماژول” یا module object نامیده می شود. برای کار با MariaDB MaxScale می توان ماژول های اضافی ایجاد کرد.
دسته ماژول هایی که معمولاً استفاده می شوند عبارت اند از پروتکل ، روتر و فیلتر.
- ماژول های پروتکل، ارتباط بین کلاینت و MaxScale و بین MaxScale و سرورهای Backend را پیاده سازی می کنند.
- روترها ، پرس و جوهای یا کویری های ملاینت ها را بررسی و تصمیم میگیرد که این درخواست را به کدام سرور ارسال کند تصمیمات معمولاً براساس قوانین مسیریابی و وضعیت سرور بک اند میباشد.
- فیلترها ، هنگام عبور داده ها از MaxScale روی داده ها کار می کنند. فیلتر اغلب برای گزارش گیری کويری ها و یا تغییر در پاسخ سرور استفاده می شود.
برای یادگیری ProxySQL میتوانید از لینک زیر استفاده کنید
برای مشاهده دموی تصویری نحوه پیاده سازی Maxscale میتوانید از لینک زیر استفاده کنید
لینک بررسی گلرا کلاستر و maxscale
نصب MariaDB MaxScale
نصب از طریق رپازیتوری
برای نصب از این طریق ابتدا میبایست مطمین شویم پکیج های زیر روی سیستم نصب شده اند
- curl
- ca-certificates
- apt-transport-https
سپس به کمک دستور زیر مخزت ماریا دی بی را اضافه میکنیم.
curl -LsS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash -s -- --mariadb-server-version="mariadb-10.3" --mariadb-maxscale-version="2.3"
به کمک گزینه mariadb-server-version میتوانیم ورژن مخزن ماریا را مشخص کنیم در حال حاضر ورژن های زیر پشتیبانی میشود
- mariadb-10.2
- mariadb-10.3
- mariadb-10.4
- mariadb-10.5
به کمک گزینهmariadb-maxscale-version میتوانیم ورژن مخزن maxscale را نیز مشخص کنیم در حال حاضر ورژن های زیر پشتیبانی میشود
- MaxScale 1.4
- MaxScale 2.0
- MaxScale 2.1
- MaxScale 2.2
- MaxScale 2.3
- MaxScale 2.4
- MaxScale 2.5
بعد از اضافه کردن مخزن از یکی از دستورات زیر استفاده میکنیم
### Installing Packages on RHEL and CentOSsudo yum install MariaDB-server MariaDB-client MariaDB-backup maxscale ### Installing Packages on Debian and Ubuntu sudo apt-get install mariadb-server mariadb-client mariadb-backup maxscale
نصب از طریق دانلود پکیج
بسته MaxScale را از صفحه Downloads سایت ماریادی بی متوانید دریافت کنید:
در ابن صفحه نوع سیستم عامل خود را به همراه ورژن maxscale انتخاب کرده و بسته ی موردنظر را دانلود کنید.
بعد از دانلود پکیج ، بسته به نوع توزیع ای که استفاده میکنید به کمک دستورات پکیج منجر این بسته را نصب کنید
- برای انواع RHEL / CentOS ، از yum برای نصب RPM بارگیری شده استفاده کنید
- برای SLES ، از زیپ استفاده کنید
- برای سیستم های دبیان / اوبونتو ، بسته را با dpkg -i نصب کنید و پس از نصب apt-get install را برای نصب وابستگی ها اجرا کنید
همچنین می توانید برای نصب MaxScale از مخزن بسته MariaDB استفاده کنید تا ابتدا مخزن را پیکربندی کرده و سپس از طریق مدیر بسته خود بسته maxscale را نصب کنید.
maxscale دارای یکسری محدودیت ها و issue های است که میتوانید از طریق لینک زیر آن ها را بررسی کنید
لینک issue ها و محدودیت های maxscale
پیکربندی maxscale
این برنامه میتواند برای ۲ نوع کلاستر کار کند. این ۲ نوع عبارنتد از کلاستر master-slave و master-master. Galera Cluster نوعی کلاستر master-master میباشد. در این قسمت به استقرار maxscale در کنار galera cluster میپردازیم. . مهمترین قسمت ایجاد کردن فایل پیکربندی میباشد. فایل maxscale.cnf در مسیر /etc/ قرار میگیرد.
[maxscale]
threads=1
[Galera-Monitor]
type=monitor
module=galeramon
servers=server1,server2,server3
user=maxscale
password=123456789
monitor_interval=1000
[Read-Write-Service]
type=service
router=readwritesplit
servers=server1, server2, server3
user=maxscale
password=123456789
[Read-Only-Service]
type=service
router=readconnroute
servers=server1, server2, server3
user=maxscale
password=123456789
router_options=slave
[Read-Write-Listener]
type=listener
service=Read-Write-Service
protocol=MariaDBClient
port=4006
[Read-Only-Listener]
type=listener
service=Read-Only-Service
protocol=MariaDBClient
port=4008
[server1]
type=server
address=192.168.122.93
port=3306
protocol=MariaDBBackend
[server2]
type=server
address=192.168.122.17
port=3306
protocol=MariaDBBackend
[server3]
type=server
address=192.168.122.13
port=3306
protocol=MariaDBBackend
maxscale از مجموعهای از پلاگینها برای سرویسدهی استفاده میکند. غیر از پلاگینها باید آدرس سرورها نیز در فایل قرار بگیرد.
create user 'maxscale'@'xx.xx.xx.xx' identified by 'myPass';
همچنین maxscale نیاز به تعدادی از حقوق دسترسی برای بررسی وضعیت کلاستر دارد. به کمک دادههای جمعآوری شده از سرورها maxscale میتواند پرسجوها را طوری پخش کند که بازدهی به حداکثر برسد. باید توجه داشت که استفاده maxscale بیشترین تاثیر را روی خواندن دارد. با این حال نوشتن روی یک نود باعث میشود میزان خطا در خواندن کمتر شود. چون اجماع با سرعت بیشتری بدست میاید دسترسیها عبارتند از :
GRANT SELECT ON mysql.user TO 'maxscale'@'maxscalehost'; GRANT SELECT ON mysql.db TO 'maxscale'@'maxscalehost'; GRANT SELECT ON mysql.tables_priv TO 'maxscale'@'maxscalehost'; GRANT SELECT ON mysql.roles_mapping TO 'maxscale'@'maxscalehost'; GRANT SHOW DATABASES ON *.* TO 'maxscale'@'maxscalehost';
برای اتصال به گلرا از طریق مکس اسکیل از دستور زیر استفاده میکنیم.
این کانکشنی هست که میبایست سمت برنامه نویس ها در کد قرار گرفته شود
mysql -uUser -p -P4006 -h maxscale.address
حال به کمک دستور maxctr میتوانیم سرور را مدیریت کنیم
برای یادگیری ProxySQL میتوانید از لینک زیر استفاده کنید
برای مشاهده دموی تصویری نحوه پیاده سازی Maxscale میتوانید از لینک زیر استفاده کنید
لینک بررسی گلرا کلاستر و maxscale
لینک های زیر برای کار کردن با این دستور و مدیریت این سرور است. پیشنهاد میکنم حتما بررسی کنید