Academy and Foundation unixmens | Your skills, Your future
2.3K subscribers
6.68K photos
1.39K videos
1.24K files
6.17K links
@unixmens_support
@yashar_esm
[email protected]
یک کانال علمی تکنولوژی
فلسفه متن باز-گنو/لینوکس-امنیت - اقتصاد
دیجیتال
Technology-driven -بیزینس های مبتنی بر تکنولوژی
Enterprise open source
ارایه دهنده راهکارهای ارتقای سازمانی - فردی - تیمی
Download Telegram
فایل سیستم های ext3-4 از قابلیت journalization و کشینگ استفاده میکنن دقت کنید مبحث کشینک و journalizationدر ext3 به بعد ظهور کرد .
اما چطور بفهمیم قابلیت کشینگ فعال هست یانه ؟!؟
قبلش مفهوم جورنال در فایل سیستم را بررسی میکنم
#filesystem #ext #journal @unixmens
در مباحث ذخیره‌سازی، سیستم فایل ژورنالی به سیستم فایلی می‌گویند که تغییرات را قبل از اعمال کردن در سیستم فایل اصلی در ناحیه مخصوصی به نام ژورنال پیگیری و نگه‌داری می‌کند. اغلب اوقات، ناحیه ژورنال، ناحیه‌ای از سیستم فایل است که وقایع و تغییرات به صورت گردشی در آن ثبت می‌شوند. بدین ترتیب، در هنگام پیش‌آمدن مشکلی برای سیستم فایل همانند قطع شدن برق، سیستم فایل با کمترین احتمال خرابی می‌تواند به سرعت آماده به کار شود.
#filesystem #ext #journal @unixmens
حال چطور میتونیم بفهمیم قابلیت کشینگ فعال هست ، و چطور میشه اون را ِیر فعال کرد ؟
با دستور زیر میشه پی برد :
hdparm -W /dev/sdX
—----------------خروجی---------------------
/dev/sda6: │
write-caching = 1 (on)
برای دانستن اطلاعات درمورد فایل سیستم ext ما :‌
tune2fs -l /dev/sdX

—----خروجی // اطلاعات زیادی هست ما فقط بعضی از اطلاعات را قرار میدیم------------
Filesystem features: has_journal ext_attr resize_inode dir_index filetype sparse_super large_file
Filesystem flags: signed_directory_hash
Default mount options: user_xattr acl
Filesystem state: clean
Errors behavior: Continue
Filesystem OS type: Linux
Inode count: 128000
Block count: 512000
Reserved block count: 25600
Free blocks: 494994
Free inodes: 127979
First block: 0
Block size: 4096
Fragment size: 4096
Reserved GDT blocks: 124
Blocks per group: 32768
Fragments per group: 32768
Inodes per group: 8000
Inode blocks per group: 500
Filesystem created: Sun Dec 15 12:59:05 2013
Last mount time: Thu Nov 3 13:01:13 2016
Last write time: Sat Feb 4 12:20:36 2017
Mount count: 66
Maximum mount count: -1
Last checked: Sun Dec 15 12:59:05 2013
Check interval: 0 (<none>)
Lifetime writes: 1208 kB
Reserved blocks uid: 0 (user root)
Reserved blocks gid: 0 (group root)
First inode: 11
Inode size: 256
Required extra isize: 28
Desired extra isize: 28
Journal inode: 8
Default directory hash: half_md4
Directory Hash Seed: 1aff2a74-3388-4488-b525-ad15cf92a180
Journal backup: inode blocks

#filesystem #ext #journal @unixmens
برای غیر فعال کردن قابلیت کشینک داریم :
/dev/sda1 / reiserfs sync 0 0

برای ابن کار میتونبد در فایل /etc/fstab مثل این ساختار را اضافه کرد
#filesystem #ext #journal @unixmens
اما در مورد sync :
sync All I/O to the filesystem should be done synchronously. In the case of media with a limited number of write cycles (e.g. some
flash drives), sync may cause life-cycle shortening.
—------------------------------------------------------
inode_cache
Enable free inode number caching. Defaults to off due to an overflow problem when the free space CRCs don't fit inside a
single page.
—---------------------------------------------------------------------—
nospace_cache
Disable freespace cache loading without clearing the cache.
—----------------------------------------------------------------------
clear_cache
Force clearing and rebuilding of the disk space cache if something has gone wrong.
—------------------------------------------------------------------------------
inode_readahead_blks=n
This tuning parameter controls the maximum number of inode table blocks that ext4's inode table readahead algorithm will pre-
read into the buffer cache. The value must be a power of 2. The default value is 32 blocks.
—---------------------------------------------------------------------------------------—
nodelalloc
Disable delayed allocation. Blocks are allocated when data is copied from user to page cache.
—-------------------------------------------------------------------------------------------------

این ساختار ها را میشه بصورت مستقیم با دستور mount وارد کرد

#filesystem #ext #journal @unixmens
البته پارامتر های زیر را هم میشه در کرنل اعمال کرد :

To free pagecache:
echo 1 > /proc/sys/vm/drop_caches
To free dentries and inodes:
echo 2 > /proc/sys/vm/drop_caches
To free pagecache, dentries and inodes:
echo 3 > /proc/sys/vm/drop_caches
#filesystem #ext #journal @unixmens
نکته دیگه :
با دستور hdparm هم میشه انجام داد :
hdparm -W0 /dev/sda6
—-----------------------------خروجی---------------------------------
/dev/sda6:
setting drive write-caching to 0 (off)
write-caching = 0 (off)
#filesystem #ext #journal @unixmens
برای ساختار و بررسی فایل سیستم در هر فایل سیستمی مجموعه دستورات کاربردی موجود است در اینجا ما بررسی خانواده ext خواهیم پرداخت
مشاهده پارامتر های فایل سیستم :
# tune2fs -l /dev/sda1
tune2fs 1.41.12 (17-May-2010)
Filesystem volume name:
Last mounted on: /
Filesystem UUID: 2871717f-c9b8-43ec-b0bb-77c736ca22e0
Filesystem magic number: 0xEF53
Filesystem revision #: 1 (dynamic)
Filesystem features: has_journal ext_attr resize_inode dir_index filetype needs_recovery extent flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize
Filesystem flags: signed_directory_hash
Default mount options: user_xattr acl
Filesystem state: clean
Errors behavior: Continue
Filesystem OS type: Linux
Inode count: 8396800
Block count: 33586944
Reserved block count: 1679347
Free blocks: 31874103
Free inodes: 8374186
First block: 0
Block size: 4096
Fragment size: 4096
Reserved GDT blocks: 1015
Blocks per group: 32768
Fragments per group: 32768
Inodes per group: 8192
Inode blocks per group: 512
Flex block group size: 16
Filesystem created: Tue Jan 8 20:33:05 2013
Last mount time: Mon Mar 11 11:54:04 2013
Last write time: Tue Jan 8 20:41:21 2013
Mount count: 10
Maximum mount count: -1
Last checked: Tue Jan 8 20:33:05 2013
Check interval: 0 ()
Lifetime writes: 2967 MB
Reserved blocks uid: 0 (user root)
Reserved blocks gid: 0 (group root)
First inode: 11
Inode size: 256
Required extra isize: 28
Desired extra isize: 28
Journal inode: 8
First orphan inode: 7734872
Default directory hash: half_md4
Directory Hash Seed: a3d3d5fb-5720-472a-bc19-91bb4da2fa19
Journal backup: inode blocks
—————————————--
تعغیر Maximum Mount and Mount Count :
tune2fs -l /dev/sda1| grep -i mount
Last mount time: Mon Mar 11 11:54:04 2013
Maximum mount count: -1

به صورت پیش فرض این مقدار -۱ می باشد . این پارامتر به معنی این هست که در چه زمانی فایل سیستم شروع به اجرای e2fsck کند و دیسک را اسکن کند // -1 به معنی غیر فعال بودن می باشد .
برای فعال کردن برای مثال 20 دقیقه داریم :
# tune2fs -c 20 /dev/sda1
tune2fs 1.41.12 (17-May-2010)
Setting maximal mount count to 20
——————————————
خواهید دید خروجی به این صورت است :
# tune2fs -l /dev/sda1| grep mount
Last mount time: Mon Mar 11 11:54:04 2013
Maximum mount count: 20
Mount count: 10
——————————————
اگر فایل سیستم شما ext2 هست و قابلیت journal را ساپورت نمی کند می توانید با دستور زیر اقدام به کانورت به ext3 کنید :
tune2fs -j /dev/sdb1
—————————————-
با ساختار زیر می توان قابلیت هایی به ساختار فایل سیستم داد برای نمونه :
tune2fs -O extents,uninit_bg,dir_index /dev/sda2
ازجمله چند تعداد از ویژگی ها به قرار زیر است :

debug
bsdgroups
user_xattr
acl
uid16
journal_data
journal_data_ordered
journal_data_writeback
nobarrier
block_validity
discard
nodelalloc
——————————————
با دستور زیر می توان لیبل گذاری کرد :
# tune2fs -L /home /dev/sda1
tune2fs 1.41.12 (17-May-2010)

و بعد از تعغییر :
# tune2fs -l /dev/sda1 | grep -i name
Filesystem volume name: /home
——————————————
ادامه دارد ...

#file_syetem #linux #ext #tune2fs #storage @unixmens