Academy and Foundation unixmens | Your skills, Your future
2.29K subscribers
6.66K photos
1.37K videos
1.24K files
6.07K links
@unixmens_support
@yashar_esm
[email protected]
یک کانال علمی تکنولوژی
فلسفه متن باز-گنو/لینوکس-امنیت - اقتصاد
دیجیتال
Technology-driven -بیزینس های مبتنی بر تکنولوژی
Enterprise open source
ارایه دهنده راهکارهای ارتقای سازمانی - فردی - تیمی
Download Telegram
با مفهوم swappiness آشنا شویم
با مفهوم swaping که آشنا هستیم . حال اگر بخواهیم میزان این روند را انجام دهیم . چه باید کرد ؟
این ویژگی از هسته سیستم عامل لینوکس درجه ای که با آن لینوکس به منظور آزاد سازی فضای حافظه اصلی، عملیات Swapping
را انجام دهد را کنترل می کند. مقدار این ویژگی می تواند میان صفر تا ۱۰۰
باشد. یک مقدار پایین به این معنی است که هسته از عملیات swapping تا حد
ممکن اجتناب می کند مگر آنکه دیگر فضای خالی برای ورود فرایند جدید به درون
حافظه اصلی وجود نداشته باشد.

مقدار پیشفرض آن ۶۰ است. به این دلیل که
فضای swap بر روی هارد دیسک است و دسترسی به هارد دیسک زمان بیشتری لازم
دارد (کندتر است) بنابراین مقدار بالای این ویژگی (به طور مثال ۱۰۰) بر روی
کارایی سیستم تاثیر گذار است. فایل زیر مقدار این ویژگی را کنترل می کند.



cat /proc/sys/vm/swappiness



با دستور زیر می توان مقدار این ویژگی را تغییر داد.



echo 40 > /proc/sys/vm/swappiness



و برای اعمال دائمی تغییرات دستور زیر اجرا شود.



sysctl -p



همچنین پارامتر vm.swappiness از فایل etc/sysctl/ مقدار این ویژگی را نگه می دارد.



sysctl -a | grep swappiness





کاهش swappiness باعث می شود تا به جای
اینکه صفحه ها به فضای swap (بر روی دیسک) منتقل شوند، صفحه های بیشتری
درون حافظه اصلی باقی بمانند و این صفحه ها فضای زیادی از حافظه را اشغال
می کنند در زمان اجرا اگر فضای حافظه نیاز باشد، باید این صفحه ها به فضای
swap انتقال داده شوند که این سربار (Overhead) دارد. از طرف دیگر مقدار
بالای این ویژگی باعث می شود سیستم عامل خیلی زود و سریع صفحه ها ها را از
فضای حافظه اصلی به فضای swap انتقال دهد.
#linux #tips #tip #article #swap
@unixmens
👍4
ا InnoDB نام موتور پایگاه داده (Database Engine) یا در برخی منابع موتور ذخیره سازی (Storage Engine) که در پایگاه
داده MySQL 5.5 به بعد به صورت پیشفرض استفاده می شود. InnoDB چهار ویژگی
ا ACID و ویژگی کلید خارجی را پشتیبانی می کند. در حال حاظر InnoDB یکی از
محصولات اوراکل است و پایگاه داده های مشتق شده از MySQL یعنی MariaDB و
اPercona Server از یک موتور پایگاه داده به نام XtraDB استفاده می کنند که
در واقع مشتق شده از InnoDB است.

برخی از ویژگی های MySQL InnoDB عبارتند از

پشتیبانی از کلید خارجی

کلید خارجی یک رابطه میان ستون های دو جدول
را ایجاد می کند. به طور مثال در یک جدول اطلاعات کارمندان و در جدول دیگر
اطلاعات دپارتمان ها نگه داری می شود بنابراین در جدول کارمندان یک ستون
به عنوان کلید خارجی به جدول دپارتمان ها وجود دارد.

پشتیبانی از تراکنش ها

تراکنش مجموعه ای از دستورالعمل ها بر روی
پایگاه داده است. هر تراکنش یک آغاز و یک پایان دارد و از نظر کاربر (و نه
سیستم مدیریت پایگاه داده) هر تراکنش می تواند از یک تا چندین دستور العمل
ا SQL تشکیل شده باشد. همچنین پایان یک تراکنش با صادر شدن دستور commit
مشخص می شود. دستور commit مشخص می کند که تغییرات تراکنش بایستی به صورت
دائمی بر روی پایگاه داده ثبت و ذخیره سازی شود.

امکان ایجاد Tablespace

یکی دیگر از ویژگی های InnoDB امکان ایجاد
ا Tablespace در پایگاه داده MySQL توسط دستور CREATE TABLESPACE است.
ا Tablespace یک دسته بندی منطقی از جداول پایگاه داده است که می توان به هر Tablespace یک یا چندین فایل را اختصاص داد.

قفل گذاری در سطح سطرها یا Row-level locking

در پایگاه داده به دلیل آنکه به صورت
همزمان چندین تراکنش قصد دسترسی به یک جدول را دارند، بنابراین لازم است تا
برای حفظ سازگاری پایگاه داده، از مکانیزمی استفاده شود تا این اجرای
همروند چندین تراکنش، منجر به ناسازگاری در پایگاه داده نشوند. قفل گذاری
مکانیزمی است به این منظور به این صورت که به صورت پیشفرض قفل ها بر روی یک
جدول صادر می شود.

فرض کنید دو تراکنش قصد دسترسی و تغییر
ا (Insert, Update, Delete) بر روی یک یا چندین سطر از یک جدول را دارند. به
صورت پیش برای دسترسی تراکنش اول به سطر های لازم، کل جدول (تمامی سطرها)
بی جهت قفل گذاری می شوند (قفل گذاری در سطح جدول یا Table-level locking) و
تراکنش دوم که نیاز به دیگر سطرها از جدول دارد بی جهت باید در حالت Wait
باشد. اما در رویکرد Row-level Locking قفل تنها بر روی سطرهای مورد نیاز
تراکنش صادر خواهد شد.

با استفاده از کوئری های زیر می توان فهرستی از جدوالی که از InnoDB استفاده می کنند را فهرست کنیم.



SELECT table_name, table_schema



FROM information_schema.tables




;’WHERE engine = ‘InnoDB
#database #linux #mysql #engine #mariadb #innodb

@unixmens
با مفهوم ASM آشنا شویم ؟
ا Automatic Storage Management یک ویژگی معرفی شده از اوراکل 10g به بعد است که به عنوان Volume Management برای اوراکل عمل می کند. در صورت نیاز به افزودن دیسک یا منبع جدیدی به پایگاه داده اوراکل، در صورتی که ASM پیکربندی و نصب شده باشد، دیگر نیازی به Offline کردن پایگاه داده اوراکل نیست. در ASM مفهوم Disk Group به جای Physical Disk ها مطرح است که هر Disk Group می تواند یک یا چند دیسک فیزکی باشد. در واقع Disk Group (که از این پس گروه دیسک می نامیم) به عنوان یک واحد منطقی و متشکل از چندین دیسک فیزیکی است.یک دیسک فیزیکی می تواند یک دیسک کامل، یا پارتیشنی از دیسک و یا سیستم فایل شبکه یا NFS باشد. ASM به مدیران اجازه مدیریت ساده تر و بهتر فایل های
پایگاه داده اعم از Datafile ها، Control File ها و Archive Redo Log ها را
می دهد. ASM از ویژگی Oracle Managed File ها برای مدیریت و نامگذاری فایلها بهره می برد.

ا ASM همانند خود پایگاه داده از یک Instance تشکیل شده است اما بر خلاف پایگاه داده، ASM فاقد Data Dictionary و همچنین فاقد هر گونه پایگاه داده و به طبع فاقد هرگونه Datafile, Control File و غیره است. با پیکربندی ASM از این پس دو Instance داریم، یکی Database Instance و دیگری ASM instance که کاملا از هم مجزا هستند و هر کدام ناحیه حافظه مختص به خود و مجزا از دیگری را دارند. در واقع ASM از یک Instance و یک SPFILE و یک یا چند Disk Group تشکیل شده است که خود گروه های دیسک میزبان فایل های یک یا چند پایگاه داده اعم از Datafile ها،
ا Control File ها و Archive Redo Log های مربوط به پایگاه داده (ها) است.
تمایز میان Instance مختص به پایگاه داده و Instance مختص به ASM در پارامتر INSTANCE_TYPE مربوط به فایل پارامتر (SPFILE یا INIT.ORA) است که برای پایگاه داده INSTANCE_TYPE=RDBMS و برای ASM برابر INSTANCE_TYPE=ASM است. ASM Instance
دارای SGA مجزا و مختص به خود که نسبت به Database Instance فضای کمتری از
حافظه را طلب می کند. به طبع ASM Instance دارای چندین فرایند پس زمینه
است که تعدادی از آنها با Database Instance مشترک بوده و بقیه مختص خود
ASM Instance هستند.

oracleasmarch

تفاوت دیگر ASM Instance با Database Instance در این است که ASM بر خلاف DB حالت OPEN ندارد و تنها حالت های Shutdown Abort, NoMount و Mount را دارد. در حالت Mount گروه های دیسک و به طبع دیسک های مختص آنها Mount خواهند شد، پس از این رو برای گروه دیسک می توان آنرا Dismount نیز کرد. در حالت No Mount از ASM Instance فایل پارامتر (SPFILE یا INIT.ORA) خوانده خواهد شد.
ASM Instance شامل متادیتا هایی است که ازاطلاعات را درباره گروه های دیسک در خود دارند و این متادیتا ها درون خود گروه دیسک ذخیره می شوند.این فرادادها یا meta data ها شامل مواردی همچون

دیسک های متعلق به گروه دیسک.


میزان فضای قابل مصرف در گروه دیسک.


نام فایل ها از فایل های مجود در گروه دیسک.
یک redo log که اطلاعاتی درباره تغییرات خودکار بلاک های داده ای در آن ضبط و ثبت می شود.
ا Instance های پایگاه داده و ASM دسترسی اشتراکی به دیسک های درون یک گروه دیسک را دارند، زیرا تمامی فایل های مربوط به یک یا چند پایگاه داده درون دیسک های متعلق به گروه های دیسک ذخیره شده و همچنین خود ASM مسئول مدیریت گروه دیسک است.

همانطور که گفته شد گروه دیسک یک واحد منطقی تکی از چندین دیسک است که تحت مدیریت ASM Instance و قابل دسترسی توسط یک یا چند پایگاه داده است. یک دیسک درون گروه دیسک می تواند یکی از موارد زیر باشد



یکدیسک یا پارتیشن از یک storage array


تمام یک دیسک یا پارتیشنی از یک دیسک.


Logical volumes


Network-attached file ها یا Network File System


هر لحظه و بدون Offline شدن پایگاه داده
می توان دیسک جدیدی را برای افزایش فضای گروه دیسک به آن اضافه کرد. همچنین
می تواند دیسکی را از گروه دیسک برای کاهش فضای دیسک از آن خارج نمود.
دیسک ها درون گروه دیسک می تواند نامی را به طور دستی و مشخص دریافت کنند
یا در صورت عدم تعیین نام، یک نام به صورت خودکار تعیین می شود. همچنین در
زمان پیکربندی گروه دیسک، باید یک نام را برای آن مشخص نمود. توجه داشته
باشید نامی را که برای دیسک درون گروه دیسک تعیین می کنید یا به صورت
خودکار انتخاب می شود، مستقل از آن نامی است که در سیستم عامل استفاده و
شناخته می شود.

مفاهیم Mirroring و Failure Groups

در بحث گروه دیسک دو مفهوم Mirroring و Failure Group ها وجود دارد. Mirroring محافظت از یکپارچگی داده ها را توسط مرتب کردن کپی هایی بر روی چندین دیسک فراهم می کند. در زمان ایجاد یک گروه دیسک باید چندین گام را انجام دهیم.



انتخاب یک نام برای گروه دیسک.


انتخاب
👍1
دیسک های برای عضویت در گروه دیسک.


انتخاب سطح Mirroring که دو سطح Normal و High وجود دارد.


در ASM سه سطح redundancy زیر وجود دارد



Normal که Mirroring دو گانه نیز نام دارد و حداقل به دو دیسک برای پیاده سازی لازم است.


High که Mirroring سه گانه نیز نام دارد و حداقل به سه دیسک برای پیاده سازی لازم است.


External که هیچ ASM Mirroring ای انجام نمی دهد و برای redundancy از مکانیزم های Software RAID یا Hardware RAID استفاده می شود.


سطح redundancy تعداد disk failures هایی که در برابر خطا بدون dismount کردن گروه دیسک یا از دست رفتن خطا طاقت می آورند را کنترل می کند. ASM Mirroring به دلیل تعیین سطح redundancy به ازای هر فایل نسبت به مکانیزم RAID قابل انعطاف تر است. دو فایل می توانند در یک گروه دیسک همسان پخش می شوند و در صورت از میان رفتن یکی، دیگری استفاده می شود. در در Normal Mirroring فایل ها را به صورت کپی اصلی (Primary Copy) و کپی دوم (Secondary Copy) را در دیسک ها کپی می کند. ASM دیسکی را برای کپی کردن نسخه دوم بر روی Failure Group مجزا از Primary Copy انتخاب می کند.

پس از ایجاد گروه دیسک دیگر نمی توان سطح
redundancy را تغغیر داد. برای تغییر سطح redundancy، باید نخست یک گروه
دیسک تازه با سطح redundancy مورد نظر ایجاد کرده و سپس فایل ها را به گروه
دیسک تازه متقل کرد. پیشنهاد می شود که Failure Group ها با اندازه های
یکسان ایجاد کرد تا از توزیع ناهموار و غیر متعادل داده های Mirror جلوگیری
و اجتناب کرد. در صورتی که دیسک های متعلق به گروه دیسک هم اندازه باشند؛
ASM فایل ها را بر روی دیسک به صورت مساوی در سرتا سر دیسک ها پخش می کند
که اصطلاحا evenly distributed می گویند و باعث تعادل و همسان بودن I/O
میان دیسک های درون گروه دیسک می شود.

مفهوم Allocation Units

هر دیسک ASM به allocation unit ها تقسیم
می شود که به اختصار AU گفته می شود. AU واحد پایه تخصیص در گروه دیسک است.
extent مربوط به فایل (file extent) شامل یک یا چند AU است و یک فایل ASM
شامل یک یا چند extent است. در زمان ایجاد گروه دیسک یکی دیگر از مواردی که
می توانید تعیین کنید اندازه AU است که می توانید اندازه میان 1 تا 64
مگابایت و توان هایی از دو باشد که می شود :1mb, 2mb, 4mb, 8mb, 16mb, 32mb
یا 64mb. اندازه های بزرگ AU ها کارایی بالا را برای محیط های انبار داده
فراهم می کنند.

فایل های درون گروه های دیسک ASM

همانطور که گفته شد فایل های یک یا چند
پایگاه داده می توانند درون دیسک های متعلق به گروه های دیسک ASM ذخیره
شوند که این فایل ها شاما موارد زیر هستند. این فایل ها به ASM file ها
شناخته می شوند و هر ASM file درون یک گروه دیسک قرار می گیرد و نمی توان
بخشی از فایل را درون یک گروه دیسک و ادامه آنرا درون گروه دیسک دیگری قرار
داد.



Control files


Datafiles, temporary datafiles, and datafile copies


SPFILEs


Online redo logs, archive logs, and Flashback logs


RMAN backups


Disaster recovery configurations


Change tracking bitmaps


Data Pump dumpsets


Extent ها

ASM file ها در غالب data extent ها ذخیره می شوند که خود data extent بر روی دیسک های متعلق به گروه دیسک ذخیره شده اند. و هر extent بر روی دیسک مجزایی ساکن است. خود extent ها از یک یا چند AU تشکیل شده اند. ASM برای تطابق با فایل های بزرگ از extent ها با اندازه متغیر (variable size extent) استفاده می کند.
extent ها با اندازه متغیر از larger ASM datafile ها پشتیبانی می کند که
باعث کاهش میزان فضای SGA مورد نیاز برای Dtafile های حجیم و بزرگ می شود و
به طبع باعث افزایش کارایی ایجاد و باز کردن فایل ها خواهد شد.

اندازه ابتدایی extent برابر با اندازه AU
بوده و بر اساس ضریبی از 8 و 64 افزایش پیدا می کند. شکل زیر ارتباط میان
extent و AU را نشان می دهد. اندازه 20000 اولیه ( از extent شماره 0 تا
19999) برابر با اندازه AU است. شکل زیر هشت extent اولیه (از شماره 0 تا
7) را نشان می دهد که بر روی چهار ASM Disk توزیع شده اند. (توجه کنید که
هز extent بر روی یک دیسک منفرد وجود دارد و ادامه اش در دیسک دیگر نیست).
پس از 20000 تا extent نخست، اندازه 20000 تا extent بعدی (از شماره 20000
تا 39999) ضرب 8 در اندازه AU (یعنی AU*8) خواهد بود. در شکل زیر extent ها
از شماره 20000 تا 20007 که به صورت قرمز رنگ مشخص شده اند، این مطلب را
نشان می دهد که هر کدام از 8 تا AU تشکیل شده اند. extent ها از شماره
40000 به بعد که در شکل نشان داده نشده اند اندازه ای از ضریب 64 در AU
یعنی AU*64 دارند.

oracleasmarch1

منظور از variable size extents این است
که 20000 تای نخست یک اندازه و برابر با اندازه AU
بوده و سپس بقیه مضربی
از
8 و 64 از اندازه AU خواهند شد. همانطور که گفته شد اندازه AU در زمان
ایجاد گروه دیسک تعیین می شد که تحت خصیصه AU_SIZE از گروه دیسک مشخص می

شود.
حال سوال :
آیا میتوان ASM را برای کاربردهای دیگری به غیر از oracle استفاده کرد ؟‌
#linux #stoage #oracle #article #tip #tips
@unixmen
مقایسه پرتقاضاترین مهارت های سایبری در سال 2021 و 2022 براساس گزارش گروه CyberEdge
👍3
ایا با مفهوم DPI آشنا هستید ؟
منظور ما این مفهوم در مانیتور ها نیست . بلکه مفهومی در شبکه است . با ما همراه باشید تا به بررسی این مفهوم بپردازیم :
🔥2
در واقع DPI مخفف Deep packet inspection میباشد . و به این مفهوم هست که :‌

نوعی از فیلتر بسته‌ها در شبکه‌های کامپیوتری است که علاوه بر بخش هدر، بخش دیتا (داده‌ها) ی بسته‌ها را در شبکه برای وجود اطلاعات نامناسب بر اساس معیارهای از پیش تعریف شده بررسی می‌کند. چنانچه بسته مجاز شناخته شد از فیلتر عبور می‌کند و در غیر اینصورت بسته به مسیر دیگری ارسال می‌شود یا برای جمع‌آوری اطلاعات آماری و بررسی ذخیره می‌شود. بسته‌های آی‌پی از یک بخش دیتا به همراه چندین هدر تشکیل شده‌اند. تجهیزات شبکه عموماً به اولین هدر نیاز دارند.
Academy and Foundation unixmens | Your skills, Your future
در واقع DPI مخفف Deep packet inspection میباشد . و به این مفهوم هست که :‌ نوعی از فیلتر بسته‌ها در شبکه‌های کامپیوتری است که علاوه بر بخش هدر، بخش دیتا (داده‌ها) ی بسته‌ها را در شبکه برای وجود اطلاعات نامناسب بر اساس معیارهای از پیش تعریف شده بررسی می‌کند.…
ممکن است فکر کنید که مرور وب با استفاده از حالت ناشناس/خصوصی مرورگرتان ، به این معنی است که ISP شما نمی‌تواند آنچه را که به صورت آنلاین انجام می‌دهید ببیند، اما این یک خط فکری خطرناک است. ISP ها در واقع می توانند از روشی به نام بازرسی بسته عمیق (DPI) برای نظارت بر فعالیت شما استفاده کنند.

کمی عمیق تر شویم :

بازرسی بسته عمیق چیست؟

ا Deep Packet Inspection یک روش فیلتر کردن بسته های شبکه است که هم هدر و هم بخش داده یک بسته را تجزیه و تحلیل می کند (بسته کوچکی از داده های مربوط به هر کاری که انجام می دهید، ارسال می کنید و دریافت می کنید). در مورد یک ISP، DPI به این معنی است که کل اتصال و ترافیک آنلاین کاربر را تجزیه و تحلیل می‌کند، نه فقط برخی از اطلاعات اتصال مانند شماره پورت، آدرس‌های IP دسترسی‌یافته و پروتکل‌ها.

ا ISPها معمولاً از DPI برای تخصیص منابع موجود برای ساده‌سازی جریان ترافیک و بهینه‌سازی سرورهای خود برای شناسایی هکرها، مبارزه با بدافزارها و جمع‌آوری داده‌های رفتاری در مورد کاربرانشان استفاده می‌کنند.





بازرسی بسته عمیق چگونه کار می کند؟

ا DPI معمولاً در سطح فایروال انجام می‌شود، به‌ویژه در لایه هفتم اتصال بین سیستم‌های باز - لایه برنامه. این روش محتویات هر بسته داده ای را که از یک نقطه بازرسی عبور می کند، ارزیابی می کند.

روشی که DPI محتویات بسته های داده را ارزیابی می کند بر اساس قوانینی است که توسط مدیر شبکه ایجاد شده است. DPI ارزیابی را در زمان واقعی انجام می دهد و می تواند بگوید که بسته های داده از کجا (به طور دقیق کدام برنامه یا سرویس) آمده اند. همچنین می‌توان فیلترهایی را برای هدایت مجدد ترافیک DPI از سرویس‌های آنلاین (مثلاً فیس‌بوک) ایجاد کرد.

به عنوان مثال، دولت چین از Deep Packet Inspection برای سانسور محتوایی که برای شهروندان چینی و منافع دولتی "مضر" تلقی می شود، استفاده می کند. برای این منظور، ISP های چینی از DPI برای ردیابی کلمات کلیدی خاصی که از طریق شبکه هایشان عبور می کنند، استفاده می کنند و در صورت یافتن چنین اطلاعاتی، اتصالات را محدود می کنند.

مثال دیگر آژانس امنیت ملی ایالات متحده است که از DPI برای نظارت بر ترافیک اینترنت استفاده می کند. همچنین، گفته می شود که دولت ایران از DPI برای جمع آوری اطلاعات افراد و مسدود کردن ارتباطات استفاده می کند.





چگونه ISP ها از بازرسی بسته عمیق استفاده می کنند؟

یکی از راه های اصلی استفاده ISP ها از DPI این است که به دنبال محتوای P2P بگردند – به خصوص در کشورهایی که تورنت دقیقاً قانونی نیست. وقتی محتوای P2P را پیدا می‌کنند، یا سرعت دانلود کاربر را کاهش می‌دهند (بهترین سناریو)، یا داده‌های کاربر را به مقامات و آژانس‌های حق نسخه‌برداری تحویل می‌دهند (که منجر به اعلامیه‌های DMCA، جریمه‌های هنگفت یا حتی زندان برای این افراد می‌شود. کاربر).

علاوه بر این، ISPها می توانند در صورت نیاز به مسدود کردن دسترسی به وب سایت خاصی، به DPI اعتماد کنند. به طور معمول، آنها این کار را برای رعایت قوانین دولتی و بالقوه حق چاپ در مورد محتوا انجام می دهند.

ا ISP ها همچنین می توانند از DPI برای ردیابی اتصالات کاربر استفاده کنند و پروفایل های جامع را بر اساس فعالیت ها و ترجیحات آنلاین خود جمع آوری کنند، که ممکن است آنها را به تبلیغ کنندگان شخص ثالث بفروشند. این چیزی است که از نظر قانونی می تواند در ایالات متحده و در پشت صحنه در کشورهای دیگر رخ دهد.

در نهایت، این امکان نیز وجود دارد که ISP شما از DPI برای کاهش پهنای باند استفاده کند. از آنجایی که DPI بینش زیادی در مورد آنچه آنلاین انجام می‌دهید و آنچه دانلود می‌کنید به آن‌ها می‌دهد، اگر فکر کنند از «داده‌های بیش از حد» برای یک فعالیت خاص استفاده می‌کنید - مانند بازی آنلاین، پخش آنلاین یا دانلود فایل‌ها، احتمالاً می‌توانند سرعت شما را کاهش دهند.


#dpi #net #security #linux #network #article



@unixmens
👍5