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
[email protected]
یک کانال علمی تکنولوژی
فلسفه متن باز-گنو/لینوکس-امنیت - اقتصاد
دیجیتال
Technology-driven -بیزینس های مبتنی بر تکنولوژی
Enterprise open source
ارایه دهنده راهکارهای ارتقای سازمانی - فردی - تیمی
Download Telegram
یه نکته : ما ریپوزیتوری هایی هم داریم که تو تمام دیسترو ها میتونید استفاده کنیم ریپوزیتوری برای برنامه های پایتون به نام pip
#pip #repository @unixmens
نظرخواهی اعضا از برنامه State of the Map 2017. مربوط به پروژه osm
https://blog.openstreetmap.org/2017/04/11/community-survey-for-the-state-of-the-map-2017-program/
سوال یکی از دوستان بهانه ای شد برای نوشتن این مطلب
مفهوم Metadata چیست ؟

در ابتدا باید مفهوم metadata را بدانید. با توجه به تعاریف ساده ای که در اینترنت وجود دارد در واقع metadata یک data برای سایر data ها است. یعنی اگر شما یک نامه حاوی اطلاعات داشته باشید ، metadata ی شما در واقع ادرس پستی و مواردی است که بر روی پاکت نامه قرار دارند خواهد بود. Metadata در ساختار پارتیشن ها و دیسک ها حاوی اطلاعاتی در خصوص داده ها می باشد.
برای مثال و درک بهتر ، اگر شما یک ماشین خریده باشید یک سری اطلاعات با کاتالوگ ماشین در اختیار شما قرار می گیرد که بهتر بتوانید از ماشین استفاده کنید که این اطلاعات با خود ماشین همراه نیستند ، اطلاعاتی از قبیل شماره ثبت ماشین ، مدل ، سال تولید ، اطلاعات بیمه و ... از جمله metadata ای هستند که برای یک ماشین سواری به شما می توان ارائه داد. به تمام اینها metadata گفته می شود. در مفاهیم سیستم عامل لینوکس و یونیکس metadata در لایه های مختلف سیستم عامل وجود دارد از جمله پارتیشن ها و فایل سیستم ها که یکی از این مفاهیم که دارای metadata است به عنوان superblock شناخته می شود.
#file_system #storage @unixmens
مفهوم superblock چیست ؟

در واقع superblock یک نوع metadata ی بسیار مهم برای فایل سیستم است که اطلاعاتی از قبیل نوع فایل سیستم ، اندازه ، وضعیت ، اطلاعات در خصوص سایر metadata های موجود ، ویژگی های فایل سیستم ، اندازه بلاک های فایل سیستم ، فضاهای خالی ، فضاهای پر شده ، محل قرارگیری جدول inode ها ، اطلاعات استفاده از دیسک و ... را در خودش نگه می دارد. تصور کنید که superblock شما از سیستم حذف شود !! چه اتفاقی می افتد ! در واقع سیستم دچار خلا ندانستن می شود و اطلاعاتی در خصوص محل داده های خودش نخواهد داشت ، با اینکه داده ها در سر جای خودشان قرار دارند. Superblock بسیار برای سیستم حیاتی است و به همین دلیل در فایل سیستم های قدرتمند این block بصورت خودکار در محل های مختلف دیسک یا پارتیشن شما بصورت خودکار backup گیری می شوند.

در واقع Superblock به عنوان یک metadata ی سطح بالا در ساختار فایل سیستم شناخته می شود. برای مثال اگر superblock پارتیشن var/ سیستم دچار اختلال بشود ، دیگر شما نمی توانید از این پارتیشن در حالت عادی بصورت mount شده استفاده کنید . در چنین مواردی است به شما کمک می کند و با استفاده از دستور fsck شما می توانید از superblock های backup گیری شده ای که در سطح فایل سیستم قرار دارند برای بازگردانی superblock ای که primary است استفاده کنید و مشکل را برطرف کنید. کپی های backup ای که از superblock ها گرفته می شود در تقریبا سراسر فایل سیستم پخش می شوند اما اولین offset از این داده ها در ابتدایی ترین block پارتیشن شما ذخیره می شود و به همین دلیل این قسمت را primary superblock می نامند. در فرآیند ریکاوری فایل سیستم با استفاده از fsck شما می توانید اطلاعات مربوط به superblock ها را با استفاده از دستور زیر مشاهده کنید :
dumpe2fs /dev/hdd | grep -i super
بعد از اینکه با دستور بالا توانستید superblock ها را مشاهده کنید می توانید با استفاده از دستور زیر ساختار superblock را تعمیر کنید ، فرض کنیم که آدرس superblock سالم ما برای ریکاوری عدد 163840 است بنابراین دستور ریکاوری به شکل زیر خواهد شد. توجه کنید که همیشه هم بدست آوردن superblock ها به این سادگی نیست و بعضا نیاز هست که فرمت کردن پارتیشن را شبیه سازی کنیم تا متوجه شویم که superblock ها در کجا قرار دارند :
/sbin/fsck.ext3 -b 163840 -B 1024 //dev/hdd
امیدوارم کمی مفهوم superblock برای شما جا افتاده باشد ، بحث در این خصوص زیاد است و فقط در این حد که متوجه شوید این مفهوم چقدر می تواند در بازسازی یک فایل سیستم به شما کمک کند کافیست ، برخی فایل سیستم ها فاقد superblock می باشند ، برای مثال فایل سیستم msdos ای که در لینوکس و ویندوز مشترک است هیچ superblock ای ندارد که مشکل را بتواند حل کند.
#file_system #storage #superblock @unixmens
دستور dumpe2fs :

ابزار dumpe2fs یک ابزار بسیار ساده ولی بسیار کاربردی برای بدست آوردن اطلاعات فایل سیستم های لینوکس است ، این ابزار در خصوص فایل سیستم های معروف لینوکس یعنی ext2 ext3 و ext4 بسیار کاربردی است. تمامی اطلاعاتی که این ابزار در اختیار ما قرار می دهد کاربردی نیستند اما می توان با فیلتر کردن خروجی اطلاعات اطلاعات بسیار مفیدی از فایل سیستم ها بدست آورد ، از جمله این اطلاعات مهم می توان به UUID فایل سیستم ، فعال بودن قابلیت Journaling در فایل سیستم ، تعداد inode ها ، میزان بلاک های خالی و پر فایل سیستم ، وضعیت فایل سیستم ، نوع سیستم عامل مورد پشتیبانی توسط فایل سیستم و بسیاری دیگر از موارد اشاره کرد ، ساختار استفاده از این دستور بسیار ساده است اما نکته در اینجاست که دستور بایستی با پارامتر h- وارد شود تا مقادیر خلاصه تری به ما نمایش داده شوند در غیر اینصورت خروجی بسیار زیاد خواهد بود ، به دستور زیر دقت کنید که اطلاعات مربوط به sdb2 را با فایل سیستم ext2 نمایش می دهد ، توجه کنید که ext2 قابلیت journaling ندارد : .
[root@localhost ~]# dumpe2fs -h /dev/sdb3
dumpe2fs 1.42.9 (28-Dec-2013)
Filesystem volume name: <none>
Last mounted on: <not available>
Filesystem UUID: 1a609cce-05b0-4525-a187-80d64694f4b3
Filesystem magic number: 0xEF53
Filesystem revision #: 1 (dynamic)
Filesystem features: ext_attr resize_inode dir_index filetype sparse_super large_file
Filesystem flags: signed_directory_hash
Default mount options: user_xattr acl
Filesystem state: not clean
Errors behavior: Continue
Filesystem OS type: Linux
Inode count: 327680
Block count: 1310720
Reserved block count: 65536
Free blocks: 1287586
Free inodes: 327669
First block: 0
Block size: 4096
Fragment size: 4096
Reserved GDT blocks: 319
Blocks per group: 32768
Fragments per group: 32768
Inodes per group: 8192
Inode blocks per group: 512
Filesystem created: Mon Jul 11 04:30:18 2016
Last mount time: Mon Jul 11 04:30:40 2016
Last write time: Mon Jul 11 04:30:40 2016
Mount count: 1
Maximum mount count: -1
Last checked: Mon Jul 11 04:30:18 2016
Check interval: 0 (<none>)
Reserved blocks uid: 0 (user root)
Reserved blocks gid: 0 (group root)
First inode: 11
Inode size: 256
Required extra isize: 28
#file_system #storage #superblock #dumpe2fs @unixmens
از دستور wall برای ارسال یک پیام به کلیه کاربران که در سیستم وارد شده اند استفاده می شود. این پیام بر روی ترمینال نمایش داده خواهد شد. متن این پیام نیز می تواند از یک فایل خوانده شود
# wall [-n] [-t timeout] [file]

بعنوان مثال با اجرای دستور زیر، محتویات فایل text بر روی ترمینال کلیه کاربرانی که بر روی سیستم شما لاگین کرده اند نمایش داده خواهد شد.
# wall /home/tst

OPTIONS
-n, —nobanner
Suppress the banner.

-t, —timeout timeout
Abandon the write attempt to the terminals after timeout seconds. This timeout must be a positive integer.
The default value is 300 seconds, which is a legacy from the time when people ran terminals over modem
lines.

-g, —group group
Limit printing message to members of group defined as a group argument. The argument can be group name or
GID.

-V, —version
Display version information and exit.

-h, —help
Display help text and exit.

NOTES
Some sessions, such as wdm, that have in the beginning of utmp(5) ut_type data a ':' character will not get the
message from wall. This is done to avoid write errors.


#wall #command #sysadmin #devops @unixmens
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
Asseco SEE Turkey is looking for a Senior Linux System Administrator who will oversee operations and administration of company servers including Linux servers, VMware virtualization environments, load balancers, NetApp storage servers and related infrastructures.

Main accountabilities:

To operate, and maintain production, test and development servers, virtualization environments and associated storage systems
Design and implement monitoring systems and procedures for 7/24 uptime requirements of extremely critical systems
Ensure security levels across all servers through configuration and regular patch management of both the operating system and application.
Analyze and optimize performance of systems, eliminate bottlenecks, plan for capacity upgrades
Perform data integrity checks and harden security of systems along with audits and procedures


Desired Skills and Experience
Education: Bachelor degree in Computer Science, Engineering.

Language: English - Upper Intermediate level allowing communication, understanding technical statements and documents associated with duties

Required Skills, Knowledge and Experience:

5 years of experience in:
Linux System Administration experience with RedHat, CentOS.
Bash Scripting / Programming ability to write automation scripts from scratch as well as read/update/modify existing scripts
NetApp storage platforms
VMware virtualization environments
Managing web application software, server scripting modules, and related infrastructure components (e.g., Apache, http, tomcat, SSL)
Planning and designing for changes under change management procedures, foreseeing risks and mitigating them


Competencies:

Strong drive to achieve the best results in line with internal or external standards of excellenc
Good planning and organizing abilities
Ability and willingness to work as a part of team
Openness to continuous acquisition of new skills and competencies, as well as to improve existing
محل کار : ترکیه
https://tr.indeed.com/viewjob?jk=cb9e0e3f83f598d3&q=linux+system+administrator&tk=1c08g1s7993p3b3n&from=web
#job #linux @unixmens #oversea
Media is too big
VIEW IN TELEGRAM
چالش های نظام آموزشی
سالها پیش این کتاب را نوشته بودم // تقدیم به عزیزان https://www.dropbox.com/s/ldpqg4a9ycyip8e/squid.pdf?dl=0 #rman #linux #cache #proxy @unixmens #yashar_esmaildokht
خوشه بندی
کلاسترینگ
در واقع 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 در آدرس https://openmosix.sf.net/ یا https://openmosix.org/ قرار دارد.
پس از آغاز این پروژه، تعداد زیادی از کاربران Mosix به OpenMosix روی آوردند. سیاست توسعه باز موشه باعث شد تا توسعه OpenMosix سرعت بیشتری بگیرد. در حال حاصر ۱۴ نفر بطور فعال روی پروژه OpenMosix کار می کنند در حالی که تعداد افراد پروژه Mosix تنها ۴ نفر است. در حال حاضر تعداد زیادی رفع اشکال، بهینه سازی سرعت و بهینه سازی در کدهای OpenMosix صورت گرفته است و تعدادی قابلیت جدید و بهینه سازی مجدد در سرعت نیز بزودی ارائه خواهند شد. در حقیت جدا شدن پروژه OpenMosix از Mosix باعث ارائه راه حل های بهتری برای کلاستر سازی تحت سیستم عامل لینوکس فراهم نموده است.
#clustering #hp #hpc #linux #openmosix @unixmens