Academy and Foundation unixmens | Your skills, Your future
2.28K subscribers
6.65K photos
1.36K videos
1.23K files
5.97K links
@unixmens_support
@yashar_esm
unixmens@gmail.com
یک کانال علمی تکنولوژی
فلسفه متن باز-گنو/لینوکس-امنیت - اقتصاد
دیجیتال
Technology-driven -بیزینس های مبتنی بر تکنولوژی
Enterprise open source
ارایه دهنده راهکارهای ارتقای سازمانی - فردی - تیمی
Download Telegram
The PDT team is seeking a highly talented Linux HPC Systems Administrator to enhance and support our research computing clusters.

As part of the HPC/Grid team, you will be responsible for improving, extending, and maintaining the HPC/Grid infrastructure, and for helping provide a world-class computing and big data environment for PDT’s Quantitative Researchers. You will interface closely with research teams using the Grid, the entire Linux engineering group, software engineers, and PDT’s in-house monitoring team. You will also have the opportunity to serve as PDT’s subject matter expert for various HPC technologies.

Your focus will be traditional Beowulf clusters as well as other innovative large-scale computation. Strong Linux system administration skills are required. If you have mastered the art of turning cutting-edge storage and compute technology into a stable and scalable HPC infrastructure, you will thrive in this role.

Why join us? PDT Partners has a stellar twenty-three-year track record and a reputation for excellence. Our goal is to be the best quantitative investment manager in the world—measured by the quality of our products, not their size. PDT’s very high employee-retention rate speaks for itself. Our people are intellectually extraordinary and our community is close-knit, down-to-earth, and diverse.

Responsibilities:

Administration of HPC clusters and parallel file systems
Architecting innovative solutions to complex operating and file system issues
Linux cluster troubleshooting
Technology evaluation and selection
Providing direct support and education of the researcher community
Job scheduler optimization
Deep dives into specific cluster workloads to optimize them
Management and optimization of many petabytes of storage

Qualifications:

2-6 years of highly relevant experience
Excellent Linux systems administration and troubleshooting skills
Experience in design and engineering of HPC systems and schedulers (Slurm, SGE, TORQUE)
Experience administering and tuning scale out storage (GPFS, BeeGFS, Lustre, Ceph)
Experience with provisioning systems (Warewulf, Rocks, Bright, xCat, Mesos)
Advanced scripting or programming skills (C/C++, Python, Perl, or UNIX shell)

Education:

Bachelor’s degree in computer science, engineering, or related field from a strong academic program

محل کار : new york
https://boards.greenhouse.io/pdtpartners/jobs/136190?gh_src=n1tyjv#.WiCahCeb7Wc
#job #linux #clustering #beowulf @unixmens #oversea
About Engility

Engility delivers innovative solutions to critical challenges facing the nation and the world. As a premier provider of integrated services for the U.S. government, we support the Department of Defense, intelligence community, space communities, federal civilian agencies and international customers. Engility is dedicated to making lives better, safer and more secure.
Description

Provide AIT Level II Support
Linux Server and system administration support;
Planning, design, installation, configuration, documentation, system remediation, operations and maintenance, performance tuning, data protection, backup, and recovery;
Interfacing with vendors and service providers for analysis and troubleshooting;
User support, including, but not limited to: hardware, software, and multimedia support services;
Security requirement implementation;
Monitoring high performance computing clusters, servers, storage arrays, high performance workstations, and associated elements.
The HPC environment comprises two Beowulf clusters with 1,500 - 2,000 cores each, running CentOS and Scyld, plus a Cray with approximately 3,200 cores, running ROCKS. Nodes are connected via InfiniBand and 10G Ethernet. Data is stored on multiple network attached storage systems of varying technologies and is shared with advanced engineering workstations running Red Hat Enterprise Linux.


Required Qualifications

Active Secret Clearance
Bachelor’s degree in computer engineering, computer science, or information technology from an accredited college/university.
In lieu of the bachelor’s degree, the Linux Engineer may have one of the following certifications: GSEC; Security + (CE) Certificate; SSCP Certificate; or CNSSI/NSTISSI 4115/4016 Certificate.
The administrator shall have at least four years of Linux system administration experience.
Work experience shall also include/demonstrate the following:
Expertise in Lightweight Directory Access Protocol (LDAP), Network File System (NFS)\
Domain Name Service (DNS), and Secure Shell (SSH);
Ability to write and maintain Linux and Perl shell scripts;
Understanding of security and network/distributed computing concepts;
Strong technical problem solving skills, communication, teamwork, and customer service skills.
https://careers-engility.icims.com/jobs/38998/job?mobile=false&width=690&height=500&bga=true&needsRedirect=false&jan1offset=660&jun1offset=600
محل کار : US-MD-North Bethesda
#job #linux #clustering #beowulf @unixmens #oversea
خوشه بندی
کلاسترینگ
در واقع Cluster به گروهی از چند سیستم کامپیوتری گفته می‌شود که با هم کار می‌کنند و از خیلی جهات می‌توان آن‌ها را یک سیستم واحد در نظر گرفت. اجزا یک کلاستر معمولا به وسـیله شبکه‌ محـلی به یکدیگر متصل می‌شوند. این کلاستر‌ها با هدف افزایش قدرت پردازش و یا امنیت فیزیکی اطلاعات و سرویسها تشکیل میشود و معمولاً از این نظر نسبت به یک سرور انفرادی مقرون به صرفه تر و مطمئن تر است. خدمات کلاسترینگ به 4 بخش Storage Cluster و High Availability و Load Balancing و High Performance Computing دسته بندی می‌شوند.
یک خوشه بندی Beowulf یک دسته از کامپیوتر ها است که در حالت عادی همگی یکسان هستند. این کامپیوترها به وسیله یک شبکه محلی کوچک شبکه شده اند و بر اساس زیرساخت نرم افزاری منبع باز(مانند لینوکس) و یا به وسیله کتابخانه ها و برنامه هایی که نصب شده اند اجازه می دهند پردازش ها میان آنها به اشتراک گذارده شود.نتیجه این کار برابر است با پردازش موازی خوشه ای با کارایی بالا به وسیله سخت افزار کامپیوترهای شخصی ارزان.

نام Beowulf در اصل اشاره میکند به یک کامپیوتر بخصوص که در سال 1994 بوسیله Tomas sterling و Donald becker در سازمان NASA ساخته شد. این نام برگرفته از نام یک شخصیت اصلی در یک شعر حماسی انگلیسی است.Beowulf که یک بخشنده تمام عیار بود به او لقب قهرمان را دادند.شرح او چنین بود که به اندازه 30 مرد سنگین و بازوان او بسیار قدرتمند بودند.

در سطح عادی هنگامی که دو یا بیشتر از دو کامپیوتر با یکدیگر برای حل یک مشکل همکاری میکنند آن را به مثابه یک خوشه در نظر می گیریم. خوشه ها معمولا برای دسترسی پذیری بالا (High Availability) ،قابلیت اطمینان بیشترGreater Reliability)) ، محاسبلت با کارایی بالا (High Performance Computing) و برای ارائه قدرت محاسباتی بیشتر استفاده می شوند. خوشه ها را به دو کلاس تقسیم میکنیم:

خوشه های کلاس 1 : خوشه ها در این کلاس به طور کامل با استفاده از کالاهای سخت افزاری و نرم افزاری استاندارد ساخته میشوند، مانندSCSI،اترنت،وIDE.
خوشه های کلاس 2 : خوشه ها در این کلاس از کالاهای سخت افزاری و نرم افزاری تخصصی برای دستیابی به کارایی بالاتر استفاده میکنند.و معمولا نسبت به خوشه های کلاس 1 گرانتر هستند.

به طور معمول از خوشه های سنتی برای برنامه های فنی مانند شبیه سازی و بیوتکنولوژی استفاده میشود و از پتروخوشه ها (petro-clusters)برای مدلسازی بازار مالی،داده کاوی،پردازش جریان و سرورهای اینترنتی بازی و صدا استفاده میشود.

برنامه هایBeowulfمعمولابااستفاده اززبانهایی مانند Cوفرترن نوشته می شوند. که در آنها از روش انتقال پیام برای رسیدن به پردازش موازی استفاده میشود.

یک قطعه نرم افزاری مخصوص که خوشه را به شکل Beowulf تعریف کند وجود ندارد. خوشه بندی Beowulf به صورت عادی اجرا می شود و در یک سیستم عامل نظیر UNIX مانند BSD،LINUX،SOLARIS و در حالت عادی بوسیله نرم افزارهای متن باز صورت می گیرد. برای پردازش های موازی از کتابخانه های شامل رابط های انتقال پیام (MPI) وماشین مجازی(PVM) که هردوی اینها به برنامه نویس این امکان را میدهند که وظایف را میان گروهی از کامپیوترهای شبکه شده تقسیم و نتایج را از میان آنها جمع آوری کند،استفاده می شود. برای مثال می توان نرم افزار های OPENMPI و MPICH نام برد که این نرم افزارها پیاده سازی هایی از MPIهستند و براحتی قابل دسترس هستند.

سیستم Beowulf معمولا شامل یک گره Server هستند.این گره سرویس دهنده وظایف کنترل تمامی خوشه و سرویس دهی فایل ها به گره های سرویس گیرنده را بر عهده دارد و همچنین خط فرمان خوشه و دروازه ورودی به جهان خارج از خوشه را در دست دارد.ماشین های Beowulf بزرگ ممکن است بیشتر از یک گره سرویس دهنده داشته باشد و شاید دیگر گره های سرویس دهنده به وظایف خاصی مانند پایانه های فرمان یا ایستگاه های گذارش گیری اختصاص داشته باشند.

در بیشتر موارد گره ها فقط انجام دهنده هستند یعنی به صورتی شکل دهی می شوند که فقط میتوانند کاری را که از آنها خواسته شده است را انجام دهند. یکی از تفاوت های اصلی میان خوشه بندی Beowulf و یک ایستگاه کاری خوشه بندی شده (Cluster of Workstations) این است که Beowulf رفتاری به مانند یک ماشین جدا دارد که تا اندازه ای سریعتر چنین ایستگاه کاری است.در بسیاری از موارد گره ها هیچگونه صفحه کلید یا مونیتوری ندارند و تنها به وسیله ورود به سیستم از راه دور قابل دسترسی هستند.
#clustering #hp #hpc #linux @unixmens
Open mosix

کلاسترها چه هستند؟
به طور عمومی هنگامی که صحبت از کلاسترها می شود، مقصود فناوری هایی است که از طریق آن کامپیوترهای مختلف بتوانند با هم و با اشتراک قدرت پردازش هم، بتوانند امور پردازشی را که به آنها محول شده است، انجام دهند. این امور پردازشی همه چیز می تواند باشد. از پردازش های سنگین علمی تا تبدیل فایل های موسیقی و یا رندر کردن جلوه های ویژه فیلم های سینمایی. برای مثال، تمامی جلوه های ویژه فیلم های ارباب حلقه ها توسط کلاسترهای لینوکس رندر و پردازش شده اند.
انواع مختلفی از فناوری های کلاستر سازی برای سیستم عامل لینوکس وجود دارند. یکی از شناخته شده ترین آنها کلاستر Beowulf است. این کلاستر حاوی چندین ماشین است که توسط یک شبکه محلی پرسرعت به هم متصل شده اند. برای استفاده از این سیستم های کلاستر، برنامه های کاربردی باید مجددا برای استفاده از آن با استفاده از کتابخانه های کلاستر سازی نوشته شوند. عمومی ترین کتابخانه های کلاستر سازی عبارتند از PVM و MPI. هر دوی این کتابخانه ها بسیار عالی کار می کنند. با استفاده این کتابخانه ها، برنامه نویسان قادر به نوشتن برنامه هایی هستند که از منابع روی کلاستر همانند منابع روی یک کامپیوتر، بهره گیری نمایند.برای بسیاری از برنامه های کاربردی، PVM و MPI امکان افزایش خطی قدرت پردازش کلاسترها را با توجه به تعداد ماشین های روی آن فراهم می نمایند.

در واقع PVM و MPIمورد استفاده همگان قرار نمیگیرد !
با اینکه کلاسترهای Beowulf بسیار قدرتمند هستند ، بزرگترین اشکال آنها نیاز به نرم افزارهای خاص می باشد که با استفاده از PVM و MPI نوشته شده باشند تا بتوانند از مزایای کلاستر استفاده کنند. البته این برای مراکز علمی و تحقیقاتی که برنامه های کاربردی خاص خود را از ابتدا می نویسند، اشکال مهمی نیست. آنها به راحتی قادرند تا از MPI و PVM استفاده کنند.
حقیقتا درصد افراد و موسساتی که برنامه های کاربردی خود را از ابتدا می نویسند بسیار پایین است. برای کسانی که مایل هستند تا یک کلاستر بنا کرده و از مزایای آن در اجرای برنامه های کاربردی عادی استفاده کنند، این یک مسئله بزرگ است! برنامه های کاربردی این دسته از موسسات بدون استفاده از کتابخانه های کلاستر سازی نوشته شده اند، بنابراین ، این گونه موسسات قادر نیستند تا از مزایای کلاسترها بهره گیری نمایند.
آیا جالب نیست که یک فناوری وجود داشته باشد تا بتوانید با استفاده از آن از مزایای کلاسترهای لینوکس استفاده کنید، بدون آنکه نیاز داشته باشید تا برنامه های کاربردی خود را از ابتدا نوشته و یا حتی آنها را مجددا کامپایل نمایید؟ خوشبختانه چنین فناوری وجود دارد و نام آن OpenMosix است!

ورود به OpenMosix
در حقیقت OpenMosix قابلیت های کلاستر سازی را به هسته لینوکس اضافه می کند، بنابراین هر پروسه استاندارد لینوکس قادر خواهد بود تا از مزایای منابع کلاستر استفاده نماید. با استفاده از تکنیک های موازنه بار تطبیقی (Adaptive Load Balancing) پردازش های در حال اجرا بر روی یک گره (node) از کلاستر، قادرند تا بطور نامحسوس به یک گره دیگر از کلاستر مهاجرت کرده و بتوانند سریعتر اجرا شوند. بدلیل اینکه OpenMosix بطور کاملا نامحسوس (Transparent) عمل می کند، پردازش هایی که از یک گره به گره دیگر مهاجرت می کنند، حتی نمی دانند (لازم هم نیست بدانند) که در یک ماشین دیگر در حال اجرا هستند!
نامحسوس بودن OpenMosix به این معنی است که برای استفاده از مزایای موازنه بار تطبیقی آن، نیازی به برنامه نویسی خاصی نیست. در حقیقت، یک نصب پیش گزیده OpenMosix به طور خودکار پردازش ها را به بهترین گره منتقل خواهد کرد. این قابلیت OpenMosix را تبدیل به یک راه حل کلاستر سازی می کند که می تواند برای بخش عظیمی از برنامه ها مفید باشد.
#clustering #hp #hpc #linux #openmosix @unixmens
در واقع OpenMosix دقیقا چکاری انجام میدهد؟
بزرگترین کاری که OpenMosix انجام می دهد، تبدیل دسته ای از ماشین های لینوکس به یک سیستم بزرگ مجازی چند پردازنده ای متقارن (SMP=Symmetric MultiProcessor) است. هرچند نحوه عملکرد آن با سیستم های SMP واقعی مقداری تفاوت دارد. نخست اینکه سیستم های واقعی SMP که مبتنی بر ۲ یا چند پردازنده هستند، می توانند اطلاعات را با سرعت بسیار بالا تبادل نمایند، در صورتی که در OpenMosix سرعت ارتباط بین گره های کلاستر، محدود به سرعت شبکه محلی است که گره ها در آن قرار دارند. استفاده از ارتباطات اترنت گیگابیت و یا سایر انواع پر سرعت اترنت باعث خواهد شد تا تبادل داده ها با سرعت بالاتری صورت گرفته و کارایی کلاستر بالاتر باشد.
البته OpenMosix دارای مزایایی نسبت به سیستم های چند پردازنده ای سنتی داراست. با استفاده از OpenMosix شما قادر به ایجاد کلاسترهایی حاوی ده ها و حتی صدها کامپیوتر با سخت افزار ارزان هستید در حالی که سیستم های SMP که حاوی تعداد زیادی پردازنده باشند، می توانند بسیار گرانقیمت باشند. برای بسیاری از برنامه های کاربردی، OpenMosix نسبت به سیستم های SMP یا Mainframe، حرف بیشتری برای گفتن دارد. البته دلیلی وجود ندارد که شما نتوانید OpenMosix را بر روی سیستم های قدرتمند چند پردازنده ای اجرا نمایید. حتی این امکان وجود دارد تا OpenMosix را به همراه برنامه های کاربردی که با MPI یا PVM توسعه یافته اند، اجرا نمایید تا سرعت کلاستر خود را بهینه نمایید.
همانند سیستم های SMP سنتی، OpenMosix قادر نیست تا یک پروسه را روی چند پردازنده فیزیکی اجرا نماید. واضح تر اینکه نباید انتظار داشته باشید تا اجرای برنامه ای مانند مرورگر موزیلا روی یک کلاستر سریعتر از یک سیستم تک پردازنده ای باشد، مگر اینکه اجرا پروسه آنرا به یک گره سریعتر روی کلاستر منتقل نمایید. بعلاوه در حال حاضر OpenMosix امکان جداسازی رشته های متعدد به هم پیوسته را از یکدیگر فراهم نمی کند.
وOpenMosix قادر است تا پروسه های استاندارد لینوکس را بین گره های کلاستر بدون مشکل مهاجرت دهد. در صورتی که یک برنامه کاربردی تعداد زیادی زیر پروسه داشته باشد، آنگاه OpenMosix قادر است تا هر یک از آنها را به یک گره مناسب در کلاستر منتقل کند. شما می توانید از این قابلیت حتی در برنامه های کاربردی که دارای زیر پروسه نیستند نیز استفاده کنید. برای مثال، در صورتی که نیاز دارید تا تعدادی فایل موسیقی را از فرمت wav به mp3 تبدیل نمایید، تبدیل هر فایل یک پروسه خواهد بود. شما می توانید تمام این پروسه ها را یکجا اجرا نمایید. در آنصورت عمل پردازش بین کلاستر پخش خواهد شد (بجای اینکه عملیات تبدیل فایل ها را یک به یک انجام دهید). در صورتی که شما ۱۲ فایل موسیقی و ۱۲ گره همسان داشته باشید، عملیات تبدیل ۱۲ بار سریعتر انجام خواهد شد.
يMosix در برابر OpenMosix
پروژه OpenMosix جدیدترین شعبه پروژه Mosix می باشد که یکی از اهداف آن فراهم کردن کلاستر سازی نامحسوس روی لینوکس است. پس چرا ما از OpenMosix استفاده کنیم؟ دلایل خوبی برای این امر وجود دارد. در اواخر سال ۲۰۰۱ رهبری پروژه Mosix تصمیم به انتشار نسخه های جدیدی از Mosix تحت مجوزهای غیر GPL گرفت (کدهایی که قبلا GPL بودند). بنابراین نسخه های جدید Mosix دیگر نرم افزار آزاد نبودند و حقوق کاربران نیز در آنها نامشخص بود و هیچ مانعی برای نویسنده Mosix وجود نداشت تا از کاربران درخواست پرداخت وجه نماید.
این تغییر مجوز باعث ایجاد نگرانی هایی در میان کاربران Mosix شد و برداشته شدن کدهای منبع و حذف لیست های پستی Mosix بدون توضیح موجه، این نگرانی را تشدید نمود. خوشبختانه این کاربران تنها کسانی نبودند که در باره این تغییرات جدید نگران بودند. موشه بار (Moshe Bar) یکی از مدیران پروژه Mosix با این تغییر مجوز از GPL موافق نبود. بنابراین وی پروژه OpenMosix را شروع کرد تا این اطمبنان حاصل شود که ارائه نسخه آزاد و رایگان Mosix به عموم مردم ادامه پیدا خواهد کرد. سایت رسمی پروژه OpenMosix در آدرس http://openmosix.sf.net/ یا http://openmosix.org/ قرار دارد.
پس از آغاز این پروژه، تعداد زیادی از کاربران Mosix به OpenMosix روی آوردند. سیاست توسعه باز موشه باعث شد تا توسعه OpenMosix سرعت بیشتری بگیرد. در حال حاصر ۱۴ نفر بطور فعال روی پروژه OpenMosix کار می کنند در حالی که تعداد افراد پروژه Mosix تنها ۴ نفر است. در حال حاضر تعداد زیادی رفع اشکال، بهینه سازی سرعت و بهینه سازی در کدهای OpenMosix صورت گرفته است و تعدادی قابلیت جدید و بهینه سازی مجدد در سرعت نیز بزودی ارائه خواهند شد. در حقیت جدا شدن پروژه OpenMosix از Mosix باعث ارائه راه حل های بهتری برای کلاستر سازی تحت سیستم عامل لینوکس فراهم نموده است.
#clustering #hp #hpc #linux #openmosix @unixmens
جهت برپا سازی یک کلاستر، شما به حداقل دو دستگاه مبتنی بر لینوکس که به یک شبکه داخلی متصل بوده و قادر به کامپایل کردن و اجرای هسته های سری 2.4 باشند، نیاز دارید. همچنین شبکه شما باید دارای حداقل سرعت ۱۰۰ مگابیت باشد. این سرعت به شما سرعت بسیار خوبی را اعطا خواهد نمود. سرعت اترنت استاندارد یعنی ۱۰ مگابیت به شما سرعت چندان جالب توجهی نخواهد داد. البته در صورتی که شبکه شما از این نوع است و مایل هستید تا فقط OpenMosix را تجربه نمایید، پاسخ گو خواهد بود. استفاده از اترنت های گیگابیت مفید بوده ولی انتخابی است. البته ممکن است واقعا به آن نیاز نداشته باشید و اترنت ۱۰۰ مگابیت امور شما را به خوبی انجام دهد.
اتصال گره های کلاستر به یک سوئیچ پرسرعت سیستم های شما را قادر خواهد ساخت تا در حالت Full Duplex عمل نموده و پهنای باند شما دو برابر گردد. همچنین می توانید در یک کلاستر ۲ یا ۳ گره ای از سیم کشی مخصوص جهت اتصال مستقیم گره ها به هم استفاده نمایید.
داشتن فضای Swap کافی قویا توصیه می شود. به این صورت شما قادر خواهید بود تا گره ها را بصورت دینامیک از کلاستر خارج نمایید بدون اینکه با کمبود حافظه مواجه شوید. این موضوع نیز انتخابی بوده و ممکن است در شرایط خاصی که کلاستر تحت فشار کاری بالایی قرار دارد، به شما کمک کند.
در کنار مطالب بالا، باز هم اضافه می کنم که امکان ایجاد یک کلاستر مبتنی بر فقط دو دستگاه لینوکس و یک اترنت استاندارد نیز وجود دارد.
لازم نیست که تمام کامپیوترهایی که در یک کلاستر قرار می گیرند قوی باشند و یا مهم نیست که دارای سخت افزارهای متنوعی باشند. هر قدرت پردازشی می تواند به سرعت جمعی کمک کند!
#clustering #hp #hpc #linux #openmosix @unixmens
دانشمندان موفق شده‌اند با الهام گرفتن از يك روايت كهن ، شيوه كارآمد و در عين حال ارزاني را براي دستيابي به توان‌هاي محاسباتي بسيار بالا ، تكميل كنند. به نوشته ماهنامه علمي
" ساينتيفيك آمريكن " اين شيوه هم‌اكنون در بسياري از مراكز علمي و آزمايشگاه‌هاي تحقيقاتي ، مورد استفاده قرار گرفته است.
در افسانه‌هاي قديمي آمده است كه روزي گذار كهنه سربازي گرسنه و بي‌پول به دهي فقرزده افتاد و براي رفع گرسنگي ابتكاري به خرج داد. او به مردم دهكده گفت كه مي‌تواند با استفاده از يك ديگ بزرگ آب جوش و يك تكه سنگ آش خوشمزه‌اي بپزد. مردم ده ابتدا با ناباوري به او كه ديگ را بار گزارده بود نگريستند ، اما بعد هر يك براي آنكه سهمي از آش داشته باشند ، با اهدا يك تكه كوچك گوشت يا يك دسته سبزي ، يا يكي دو تا هويج ، يا مشتي برنج ، در كار پختن و تهيه آش مشاركت كردند. دست آخر درون ديگ آنقدر ماده خوردني جاي گرفته بود كه محصول نهايي را به اندازه كافي خوشمزه و مغذي مي‌كرد. به نوشته اين ماهنامه ، محققان آزمايشگاه ملي
" اوك ريج " با استفاده از همين تمثيل ابر كامپيوتر تازه‌اي موسوم به " سنگ " را تكميل كرده‌اند كه متشكل از 130 كامپيوتر معمولي است كه به صورت كلاستري عمل مي‌كنند. يكي از اين 130 دستگاه به عنوان ورودي كل سيستم عمل مي‌كند كه از يك سو با شبكه‌ها و سيستم‌هاي ديگر در تماس است و از سويي ديگر با بقيه اعضا شبكه خود ارتباط برقرار مي‌كند. اين شبكه مسائلي را كه بدان محول مي‌شود ، با استفاده از شيوه محاسبه موازي و با تقسيم كار ميان اعضاء شبكه به انجام مي‌رساند.
يكي از بزرگترين طرح‌هايي كه اين ابر كامپيوتر مونتاژ شده از عهده آن برآمده ، تهيه نقشه جامعي از ايالات متحده است كه در آن كل مساحت امريكا به 8/7 ميليون قطعه ، هر يك به مساحت يك كيلومتر مربع ، تقسيم شده و 25 مولفه آب و هوايي مختلف براي نقاط گوناگون آن در نظر گرفته شده و در مجموع 1000 ناحيه آب و هوايي متفاوت در آن منظور شده است.
هرچند انديشه به هم پيوستن كامپيوترهاي معمولي و يا قديمي براي دستيابي به توان عملياتي بالاتر ، انديشه تازه‌اي نيست و سابقه آن به دهه 1950 باز مي‌گردد ، اما تنها در چند سال اخير است كه ظهور نرم‌افزارهاي جديد امكان بهره‌گيري كلاستري از كامپيوترهاي ديجيتالي را فراهم آورده است. به عنوان نمونه ، هم‌اكنون در موزه تاريخ طبيعي آمريكا ، 560 كامپيوتر پنتيوم 3 موجود است كه محققان با به هم پيوستن آنها ، ابر كامپيوتر قدرتمندي را بوجود آورده‌اند كه از آن براي بررسي در نحوه تطور اختران و ستارگان بهره گرفته مي‌شود.
نكته حائز اهميت در رهيافت تازه آن است كه مي‌توان از كامپيوترهاي موجود در اوقاتي كه كاربران اصلي آنها از آنها استفاده نمي‌كنند ، بهره گرفت. به عنوان مثال ، پروژه " ستي " كه به وسيله دانشگاه كاليفرنيا و براي بررسي امكان وجود موجودات هوشمند در كيهان در حال اجراست ، فعاليت خود را از طريق اينترنت و به كمك 3 ميليون كامپيوتر شخصي متعلق به شهروندان ، و در ساعات آخر شب كه كامپيوترها مورد استفاده صاحبان آنها نيستند ، دنبال مي‌كند.
#clustering #hp #hpc #linux #beowulf @unixmens
بيشتر اوقات برنامه‌هاي كاربردي به توان محاسباتي بالاتري نسبت به آنچه كه يك كامپيوتر ترتيبي مي‌تواند ارائه دهد ، نياز دارند. يكي از راه‌هاي غلبه بر اين محدوديت بهبود بخشيدن سرعت عملياتي پردازنده‌ها و ساير اجزا مي‌باشد ، بطوريكه آنها بتوانند توان مورد نياز برنامه‌هاي كاربردي كه داراي محاسبات وسيع و گسترده هستند را فراهم نمايند. اگر چه در سال‌هاي اخير اين امكان تا اندازه‌اي مهيا شده است ، ليكن سرعت نور ، قوانين ترموديناميك و هزينه‌هاي سنگين ساخت پردازنده موانعي در جهت پيشرفت‌هاي آتي ايجاد كرده‌اند. يكي از راه‌حل‌هاي موثر و كم‌هزينه اتصال چندين پردازنده به يكديگر و هماهنگ نمودن عمليات و توان محاسباتي آنها مي‌باشد. سيستم‌هاي بوجود آمده تحت عنوان " كامپيوترهاي موازي " شهرت دارند و اجازه تقسيم يك كار محاسباتي بين چند پردازشگر را مي‌دهند.
همانگونه كه فيستر اشاره مي‌كند ، جهت بهبود عملكرد يك سيستم سه راه وجود دارد :
كار و تلاش بيشتر
كاركرد موثر و كارآمد
كمك گرفتن

در اصطلاح تكنولوژي‌هاي محاسباتي ، كار و تلاش بيشتر به مثابه استفاده از سخت‌افزار سريعتر
( پردازنده‌ها و دستگاه‌هاي جانبي با كارآيي و سرعت بالا ) مي‌باشد. كاركرد موثر و كارآمد به مثابه انجام كارها بصورت كارا بوده و در رابطه با الگوريتم‌ها و تكنيك‌هايي كه جهت حل مسائل و كارهاي محاسباتي استفاده مي‌شوند ، صحبت به عمل مي‌آورد. و در نهايت كمك گرفتن به بكارگيري چندين كامپيوتر جهت حل يك مسئله خاص اشاره دارد.

1 – 1 دوره‌هاي محاسبات
صنعت محاسبه يكي از صنايعي است كه سريعترين رشد را داشته و از دستاوردهاي فني پرشتاب در حوزه‌هاي سخت‌افزار و نرم‌افزار بهره جسته است. پيشرفت‌هاي تكنولوژي در عرصه سخت‌افزار ، رشد و توسعه تراشه‌ها ، فن‌آوري‌هاي ساخت تراشه ، ريزپردازنده‌هاي سريع و ارزان و همچنين پهناي باند بالا و شبكه‌هاي ارتباطي با تاخير كم مي‌باشند. در بين اين موارد پيشرفت‌هاي اخير در فن‌آوري VLSI ( تجمع در مقياس بسيار وسيع ) نقش مهمي در رشد كامپيوترهاي ترتيبي و موازي ايفا كرده است. فن‌آوري نرم‌افزار نيز به سرعت در حال رشد مي‌باشد. نرم‌افزارهاي پيشرفته‌اي چون سيستم‌عامل‌ها ، زبان‌هاي برنامه‌نويسي ، متدهاي توسعه و ابزارها ، همگي در دسترس مي‌باشند. اينها باعث رشد و ساماندهي برنامه‌هاي كاربردي در جهت خدمت به نيازهاي علمي ، مهندسي و تجاري شده‌اند. همچنين بايد خاطر نشان كرد كه برنامه‌هاي بزرگ و قدرتمند نظير پيش‌بيني وضع هوا و تحليل و بررسي زلزله ، عامل اصلي رشد و توسعه كامپيوترهاي موازي قدرتمند بوده‌اند.
يكي از راه‌هاي مشاهده محاسبه تقسيم آن به دو عصر مي‌باشد :

عصر محاسبه ترتيبي
عصر محاسبه موازي

شكل شماره 2 تغييراتي كه در عصرهاي محاسبات بوجود آمده است را نشان مي‌دهد. هر عصر محاسبه با يك توسعه در معماري‌هاي سخت‌افزاري و به دنبال آن نرم‌افزار سيستم ( به ويژه در حوزه كامپايلرها و سيستم‌عامل‌ها ) و برنامه‌هاي كاربردي شروع شده و در نهايت با رشد در PSE ها
( محيط‌هاي حل مسئله ) به اوج خود رسيده است. هر جزء از سيستم محاسباتي داراي سه فاز R&D ( تحقيق و توسعه ) ، تجاري‌سازي و توليد جنس مي‌باشد. فن‌آوري كه در وراي توسعه اجزاي سيستم محاسبه در عصر ترتيبي وجود دارد به تكامل رسيده است و رشدهاي مشابه‌اي هنوز بايد در عصر موازي رخ دهند. يعني ، فن‌آوري محاسبه موازي هنوز جاي رشد و توسعه دارد ، زيرا به اندازه كافي پيشرفت نكرده است تا به عنوان يك تكنولوژي توليد كالا مطرح شود.
#clustering #hp #hpc #linux #beowulf @unixmens
دليل اصلي ايجاد و استفاده كامپيوترهاي موازي غلبه بر تنگناي سرعت كم پردازشگر واحد با استفاده از موازي‌سازي مي‌باشد. علاوه بر اين ، نسبت بها / عملكرد يك كامپيوتر موازي كوچك بر مبناي كلاستر در مقايسه با يك ميني كامپيوتر ، بسيار كوچكتر و در نتيجه از بهاي مناسب‌تري برخوردار خواهد بود. خلاصه اينكه ، توسعه و توليد سيستم‌هايي كه سرعت متوسطي داشته و از معماري‌هاي موازي استفاده مي‌كنند بسيار ارزانتر از ايجاد عملكرد معادل در يك سيستم ترتيبي مي‌باشد.
در بخش‌هاي باقيمانده ، گزينه‌هاي معماري براي ساختن كامپيوترهاي موازي ، محرك‌هاي تغيير در جهت محاسبه موازي كم‌هزينه ، مدل كلي يك كامپيوتر كلاستر شده ، اجزاي بكار گرفته شده در ساخت كلاستر، ميان‌افزار كلاستر ، مديريت و برنامه‌ريزي منابع ، ابزارها و محيط‌هاي برنامه‌نويسي و سيستم‌هاي نماينده كلاستر مورد بحث قرار خواهند گرفت. در نهايت تكنولوژي‌هايي كه در آينده در رابطه با كلاستر وجود خواهند داشت نيز توضيح داده مي‌شوند.

2 - معماري‌هاي مقياس‌پذير كامپيوتر موازي
در طول دهه‌هاي گذشته ، سيستم‌هاي كامپيوتري بسيار متفاوتي كه از عملكرد محاسباتي بالايي برخوردار بوده‌اند ، پديدار گشته‌اند. طبقه‌بندي آنها بر مبناي چگونگي پردازنده‌ها ، حافظه و اتصالات دروني بوده است. رايج‌ترين سيستم‌ها عبارتند از :
پردازنده‌هاي موازي گسترده ( MPP )
چندپردازنده‌هاي متقارن ( SMP )
دسترسي به حافظه غير همشكل و يكسان بودن كاشه ( CC-NUMA )
سيستم‌هاي توزيعي
كلاسترها ( Clusters )

جدول شماره 1 مقايسه ويژگي‌هاي معماري و عملياتي ماشين‌هاي بالا را نشان مي‌دهد.
در واقع MPP معمولاً يك سيستم پردازش موازي بزرگ است كه در معماري آن منبع مشترك وجود ندارد. اين سيستم شامل چند صد واحد پردازش ( گره ) مي‌باشد كه از طريق يك شبكه يا سوييچ ارتباطي با سرعت بالا به يكديگر متصل شده‌اند. هر گره ( Node ) مي‌تواند تنوعي از اجزاء سخت‌افزاري داشته باشد ، اما عموماً شامل يك يا چند پردازنده و يك حافظه اصلي است. بعلاوه ، گره‌هاي ويژه مي‌توانند وسايل جانبي نظير ديسك‌ها و يا سيستم‌هاي پشتيبان داشته باشند. هر گره يك نسخه جداگانه از سيستم‌عامل را اجرا مي‌كند.
#clustering #hp #hpc #linux #beowulf @unixmens
برنامه‌هاي كاربردي موازي و مقياس‌پذير نياز به عمليات مميز شناور با كارآيي بالا ، ارتباطات با تاخير كم و پهناي باند زياد ، پهناي باند قابل انعطاف و دسترسي سريع به فايل‌ها خواهند داشت. نرم‌افزار كلاستر مي‌تواند اين نيازمندي‌ها را با استفاده از منابعي كه جهت هر كلاستر وجود دارند ، مهيا كند. مي‌توان سيستم فايلي كه از ورودي و خروجي موازي پشتيباني به عمل مي‌آورد را با استفاده از ديسك‌هايي كه جهت هر ايستگاه كاري وجود دارد بجاي استفاده از RAID سخت‌افزاري گران‌قيمت ، بوجود آورد. مي‌توان كارآيي حافظه مجازي را با استفاده از حافظه شبكه به عنوان يك فضاي ذخيره‌سازي جبراني بجاي ديسك سخت ، بطور موثري بهبود بخشيد. سيستم‌هاي فايل موازي و حافظه شبكه به نوعي شكاف بزرگ كارآيي مابين پردازنده‌ها و ديسك‌ها را كوچكتر كرده و تقليل مي‌دهند.
متصل نمودن گره‌هاي موجود در يك كلاستر با استفاده از شبكه اترنت استاندارد و يا شبكه‌هاي مخصوص با كارآيي بالا نظير Myrinet امري متداول مي‌باشد. اين چند شبكه مي‌توانند جهت انتقال اطلاعات بين گره‌هاي موجود در كلاستر بصورت موازي مورد استفاده قرار گيرند. نرم‌افزار ارتباط چندمسيره در گره‌اي فرستنده اطلاعات عمل مالتي‌پلكسينگ داده‌ها را انجام داده و سپس آن را از طريق شبكه‌هاي چندگانه ارسال مي‌كند ، سپس در گره مقصد و يا گيرنده نيز عمل دي‌مالتي‌پلكسينگ داده‌ها را انجام مي‌دهد. به همين دليل تمامي شبكه‌هاي موجود مي‌توانند جهت انتقال اطلاعات سريع مابين گره‌هاي يك كلاستر مورد استفاده قرار گيرند.
#clustering #hp #hpc #linux #beowulf @unixmens
در مبحث storage و کلاسترینگ ما مباحث زیر را داریم :
کلاستر (Cluster) : در حقیقت مجموعه سرورهایی هستند که هر کدام میتواند نقش اصلی را بازی کند و این سرورها به گونه ای تنظیم و تعریف میشوند تا در مواقع اضطراری بتوانند نقش یکدیگر را ایفا کنند و در حقیقت در دسترس بودن منابع را به میزان حداکثر ممکن میرسانند. بدین گونه که در مواقع بروز هر گونه مشکلی در سرور اصلی (خاموش شدن و ...) بدون هیچ گونه packet lost از سرور اصلی، سرور بک آپ به سرعت جایگزین شود و در این میان هیچ گونه دیتایی از بین نرود، در حقیقت میتوان گفت در لحظه sync کامل بین سرورها صورت پذیرد.
نکته :ما مفاهیم کلاسترینگ را در ساختار های زیر داریم :
storage
HA
load balancing
hpc
—---------------------------------------------
GFS یا Global File System

این فایل سیستم به طور ویژه برای محیط کلاستری طراحی شده است. با استفاده از این فایل سیستم چندین سیستم قادر خواهند بود تا به طور همزمان به عمل read/write بر روی یک Storage مشترک داشته باشند.
CLVM یا Cluster Logical Volume Management

همان LVM معمولی است با این تفاوت که برای محیط کلاستر قابلیتهایی در دستورات اضافه شده است بدان صورت که اگر بر روی یکی از سیستمها LVMها بر روی استوریج مشترک تغییر کنند،‌ اطلاعات در تمام نودها به هنگام خواهد شد.


DLM یا distributed Lock Management

که یک قفل توزیع شده در محیط کلاستر میباشد که بقیه اجزای کلاستر از آن برای مدیریت دسترسی ها به منابع مشترک استفاده میکنند. GFS از آن برای هماهنگی دسترسیها به FileSystem Metadata بر روی استوریج مشترک استفاده میکند و CLVM برای هماهنگی به‌روزرسانیها اطلاعات LVM Volumes و volume groups بین نودهای کلاستر استفاده میکند.
CMAN یا Cluster MANagement

که وظیفه مدیریت کلاستر را بر عهده دارد. Cman یک مدیریت توزیع شده است و با مانیتور کردن تعداد نودهای فعال از مقدار quorum (حد نصاب) محافظت میکند. کنترل عضویت (join) با مانیتور کردن پیامهای نودهای کلاستربر عهده cman است. در صورت عضویت و یا خروج هر یک از نودها، cman موضوع را به دیگر سیستمها جهت انجام کارهای مربوطه اطلاع میدهد. به عنوان مثال وقتی که نود A به کلاستری که نودهای b و c د رآن هستند ملحق میشود و بخواد فایل سیستمی را مونت کند که توسط دوتای دیگر در حال استفاده میباشد نیاز به یک Journla و Lock دارد، همچنین چنانکه نود در محدوده مشخصی به پیامها پاسخ ندهد CMAN آنرا از کلاستر حذف میکند و بقیه اجزا ترک نود را اطلاع میدهد که هر قسمت وظیفه محوله را انجام خواهد داد. مثلا قسمت fence نود مورد نظر را دور خواهد انداخت. همچنین زیرسیستم GFS تمام دسترسیها به استوریج مشترک را متوقف میکند و بعد از اطمینان از انجام موفقیت آمیز عمل fence عمل recovery را انجام میدهد.

CCS یا Cluster Configuration System

مدیریت تنظیمات کلاستر را برعهده دارد. این سیستم کنترل میکند که فایل کانفیگ (/etc/cluster/cluster.conf/) در تمام نودها به روز باشد و در صورت به روزرسانی در تمامی نودها اعمال میکند. CMAN از طریق CCS به فایل تنظیمات دسترسی دارد.
drbd :
در واقع drbd مخفف : distrubution replicate block device می باشد . به block device هایی گفته میشود که به عنوان یک building block برای تشکیل high availability (HA) cluster طراحی شده اند. و برای انجام آن از Mirror کردن کل یک block device از طریق یک شبکه اختصاص یافته صورت میگیرد . (در پست های قبلی مطالبی در مورد آن نوشته ام )
ceph
—------
Fencing

عبارت است از قطع اتصال نود از استوریج مشترک در کلاستر.fence عمل IO را از استوریج مشترک قطع میکند که نتیجه ان اطمینان از صحت اطلاعات است.

مدیریت HA در کلاستر

در کلاستر یک سرویس در صورت fail شدن به نود دیگری منتقل میشود و یا اینکه در صورتیکه یکی از نودهای کلاستر fail شد تمامی سرویسهای موجود در آن به سیستم دیگری منتقل میشوند. این عمل توسط سرویس rgmanager در کلاستر انجام میشود. در redhat کلاستر، یک سرویس مجموعه‌ای از چند resource است که به صورت جداگانه تعریف و در قالب سرویسها سازماندهی میشوند. مکان قرارگیری تمامی این موارد فایل تنظیمات کلاستر /etc/cluster.cluster.conf/ میباشد. جهت فراهم آوردن امکان انتقال سرویس در نودها در صورت fail شدن میبایست سرویس را به یک failover Domain منتسب کرد. یک Failover Domain زیرمجموعه‌ای از نودهای کلاستر است که برای اجرای سرویس یا مجموعه‌ مشخصی از سرویسها در نظر گرفته شود. در درون Failover Domain امکان اولویت دهی به نودها وجود دارد که مشخص کننده اولویت سیستمها در انتقال سرویسها میباشد. در مدیریت HA یک سرویس در آن واحد فقط میتواند بر روی یک نود در حال اجرا باشد.
#linux #clustering @unixmens
محتوای دوره #redhat #clustering
در مورد Zen Discovery باید گفت که یک ماژول هماهنگ‌سازی کلاستر (Cluster Coordination Module) است که سه وظیفه اصلی دارد:

کشف نودها (Node Discovery)
پیدا کردن سایر نودها و ساختن یک View کامل از کلاستر.

انتخاب Master (Master Election)
تضمین اینکه در هر لحظه فقط یک Master فعال وجود دارد.

انتشار وضعیت کلاستر (Cluster State Publishing)
همگام‌سازی وضعیت بین همه نودها.

ا Zen چیست؟

در Elasticsearch، Zen Discovery مکانیزم اصلی برای:

پیدا کردن نودها (Node Discovery)

هماهنگی بین آن‌ها

انتخاب Master Node

حفظ سازگاری کلاستر

در نسخه‌های قدیمی (تا ۶.x) این مکانیزم Zen1 نام داشت. از Elasticsearch 7.x به بعد، Zen2 معرفی شد.
2. چرا Zen2 ایجاد شد؟

مشکل Zen1:

فرآیند انتخاب Master طولانی و پرخطا بود.

در شرایطی که بخشی از کلاستر قطع می‌شد، Split-Brain (دو Master همزمان) رخ می‌داد.

مدیریت Quorum (اکثریت نودها) سخت و مستعد مشکل بود.

بهبودهای Zen2:

پروتکل هماهنگ‌سازی جدید برای انتخاب سریع‌تر و امن‌تر Master.

جلوگیری قطعی از Split-Brain با استفاده از Voting Configuration.

ا Bootstrap Process شفاف و امن برای شروع کلاستر.

3. معماری Zen2

ا Zen2 در سه بخش اصلی کار می‌کند:

Discovery

پیدا کردن نودها با مکانیزم‌هایی مثل unicast, cloud, یا file-based.

همه نودها یکدیگر را می‌شناسند و وضعیت را به‌روز می‌کنند.

Master Election

ا استفاده از Voting Configuration (مجموعه نودهایی که حق رأی دارند).

ا برای انتخاب Master نیاز به Quorum (اکثریت) است.
مثلا اگر ۳ نود Master-eligible داشته باشیم → حداقل ۲ نود باید توافق کنند.

Cluster State Publishing

ا Master انتخاب‌شده تغییرات Cluster State را به همه نودها ارسال می‌کند.

ا State شامل اطلاعات شاردها، ایندکس‌ها، تنظیمات و وضعیت نودهاست.

مزایای Zen2

ایمنی در برابر Split-Brain
چون هیچ Master جدیدی بدون Quorum شکل نمی‌گیرد.

سرعت بالاتر انتخاب Master
حتی در شرایط قطعی شبکه.

Bootstrap امن
باید لیستی از نودهای Master-eligible اولیه مشخص شود تا کلاستر به‌درستی شروع کند:

cluster.initial_master_nodes:
- node1
- node2
- node3

ا Voting Configuration خودکار
وقتی نود اضافه یا حذف می‌شود، سیستم Voting به‌روزرسانی می‌شود.

ا Zen2 در OpenSearch

ا چون OpenSearch از Elasticsearch 7.10 فورک شده، Zen2 همان ساختار را حفظ کرده.

ا در نسخه‌های جدید OpenSearch، Zen2 با بهبودهای جزئی و ثبات بیشتر نگهداری می‌شود، ولی اساس کار یکسان است.
نکته مهم طراحی

همیشه تعداد نودهای Master-eligible را فرد (Odd Number) انتخاب کنید تا Quorum بهینه باشد.

برای تحمل خرابی، حداقل ۳ نود Master-eligible نیاز دارید.

در محیط‌های Multi-DC باید مراقب Latency و Quorum باشید.


نسخه‌های Zen

ا Zen1 (تا ES 6.x): مکانیزم قدیمی با مشکلات Split-brain و انتخاب Master کند.

ا Zen2 (از ES 7.x و OpenSearch): بازطراحی کامل برای سرعت، پایداری، و جلوگیری کامل از Split-brain.
معماری Zen Discovery (Zen2)

مراحل بوت‌استرپ (Bootstrap Process)

وقتی کلاستر برای اولین بار راه‌اندازی می‌شود:

باید مشخص کنید کدام نودها Master-eligible هستند:

cluster.initial_master_nodes:
- node1
- node2
- node3

این لیست فقط اولین بار استفاده می‌شود تا Voting Configuration اولیه ساخته شود.

3.2. Node Discovery

Zen از Transport Layer (TCP) استفاده می‌کند تا نودها را پیدا کند.

متدهای رایج:

unicast → با لیست IP/hostname مشخص

Cloud plugins (AWS, Azure, GCP)

File-based seed hosts

پارامتر اصلی:

discovery.seed_hosts:
- node1:9300
- node2:9300

Master Election

الگوریتم انتخاب Master در Zen2 بر اساس Voting Quorum است:

فقط نودهای Master-eligible حق رأی دارند.

یک Master جدید فقط وقتی انتخاب می‌شود که اکثریت (Quorum) در دسترس باشد.

جلوگیری از Split-brain:

اگر Quorum برقرار نباشد، هیچ Master جدیدی انتخاب نمی‌شود.

پارامترهای مهم:

discovery.type: zen
node.master: true
node.data: false

3.4. Cluster State Publishing

وقتی Master انتخاب شد:

تغییرات (مثل اضافه شدن ایندکس یا شارد) در Cluster State ثبت می‌شود.

Cluster State به صورت atomic و versioned به همه نودها ارسال می‌شود.

هر نود فقط آخرین Cluster State معتبر را نگه می‌دارد.


#elasticsearch #log #linux #zen #clustering #elk

@unixmens