در سیستم عامل لینوکس ابزار های مختلفی برای برای مدیریت ذخیره سازی وجود دارد، اما تعداد انگشت شماری از آن ها که بیشتر کاربرد دارند، استفاده می شوند. ما در این مقاله تصمیم داریم دستورات رایج در زمینه فایل سیستم و مدیریت ذخیره سازی را معرفی کنیم.


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








پیدا کردن گنجایش حافظه و میزان حجم استفاده شده از حافظه به کمک
df


اغلب مهمترین اطلاعاتی که از سیستم موردنیاز است، چگونگی پیدا کردن گنجایش اصلی سیستم و همچنین میزان حجم مصرفی از حافظه سیستم می باشد. بدین منظور می‌توان از دستور df استفاده کرد. بصورت پیش فرض خروجی این دستور اندازه گیری ۱ هزار بلاک که معمولا بصورت مفید استفاده نشده اند می باشد و در ادامه دستور -h را می‌نویسیم، برای اینکه خروجی چاپ شده قابل فهم برای انسان باشد. بدلیل اینکه بصورت پیش فرض این دستور مقادیر را بر اساس هگزادسیمال نمایش می دهد و با -h این مقادیر بصورت مقادیر استاندارد مانند مگابایت و گیگابایت نمایش داده می شوند.





$ df -h
Output
Filesystem Size Used Avail Use% Mounted on
udev 238M 0 238M 0% /dev
tmpfs 49M 624K 49M 2% /run
/dev/vda1 20G 1.1G 18G 6% /
tmpfs 245M 0 245M 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 245M 0 245M 0% /sys/fs/cgroup
tmpfs 49M 0 49M 0% /run/user/1000
/dev/sda1 99G 60M 94G 1% /mnt/data





هماطوری که مشاهده می کنید پارتیشن /dev/vda1 که در روت قرار دارد ۶% پر شده است و ۱۸ گیگ در دسترس دارد در حالیکه پارتیشن /dev/sda1 که در مسیر /mnt/data قرار دارد خالی می باشد و ۹۴ گیگ حافظه در دسترس دارد.
می‌توانیم این مشخصات را با دستور زیر مشاهده کنیم:




$ df -h -x tmpfs -x devtmpfs
Output
Filesystem Size Used Avail Use% Mounted on
/dev/vda1 20G 1.1G 18G 6% /
/dev/sda1 99G 60M 94G 1% /mnt/data





خروجی به ما مقدار صحیح استفاده شده از حافظه بدون اطلاعات کاذب را نمایش می دهد.

پیدا کردن اطلاعاتی درمورد بلاک های دستگاه با دستور lsblk


یک block device یک کلمه عمومی برای ذخیره سازی با قابلیت نوشتن و خواندن در بلاک ها با حجم مشخصی در سیستم می باشد.


برای نمایش بلاک های حافظه از دستور lsblk استفاده می شود. این دستور بدون هیچگونه ارگومان اضافی اطلاعات زیر را نماش می دهد.


نام دستگاه و حجم آن، چگونه خارج کردن این حافظه، اعدادminor , major (که در کرنل لینوکس بصورت ردپا درایور ها و دستگاه ها ثبت می شود)، آیا این حافظه فقط بصورت قابل استفاده بصورت خواندنی می باشد یا قابلیت نوشتن هم دارد، نوع پارتیشن و…









$ sudo lsblk
Output
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 100G 0 disk
vda 253:0 0 20G 0 disk
└─vda1 253:1 0 20G 0 part /



در خروجی میتوانیم ببینیم که یک دیسک (/dev/vda) با تنها یک پارتیشن (/dev/vda1) وجود دارد که پارتیشن روت (/) از آن استفاده میکند دیسک دیگر (/dev/sda) می باشد که پارتیشن بندی نشده است.


برای بدست آوردن اطلاعات بیشتر مربوط به پارتیشن دیسک ها می شود در ادامه دستوراز –fs استفاده کرد.






sudo lsblk --fs
Output
NAME FSTYPE LABEL UUID MOUNTPOINT
sda
vda
└─vda1 ext4 DOROOT c154916c-06ea-4268-819d-c0e36750c1cd /




–fs در برخی ورژن ها در دسترس نیست بجای آن میتوان از -o برای بدست آوردن اطلاعات مشابه استفاده کرد.



برای بدست آوردن اطلاعاتی در مورد توپولوژی دیسک دستور زیر را استفاده میکنیم.




$ sudo lsblk -t
Output
NAME ALIGNMENT MIN-IO OPT-IO PHY-SEC LOG-SEC ROTA SCHED RQ-SIZE RA WSAME
sda 0 512 0 512 512 1 deadline 128 128 2G
vda 0 512 0 512 512 1 128 128 0B
└─vda1 0 512 0 512 512 1 128 128 0B



دستورات متنوعی برای نمایش اطلاعات دیسک و پارتیشن ها وجود دارد برای نمایش همه اطلاعات می توانید از -o در ادامه دستورات استفاده کرد برای مشاهده اطلاعات در بصورت لیست میتوان از -h استفاده کرد.




$ lsblk -h
Output
. . .
Available columns (for --output):
NAME device name
KNAME internal kernel device name
. . .
SUBSYSTEMS de-duplicated chain of subsystems
REV device revision
VENDOR device vendor
For more details see lsblk(8)



کار کردن با دستورات مونت در سیستم فایل

قبل از اینکه از دیسک جدیدی استفاده کنید باید آن را پارتیشن بندی کنید و آن‌را با فایل سیستم مورد نظر فرمت نمایید و سپس درایو ها یا پارتیشن های مورد نظر را مونت کنید. معمولا پارتیشن بندی و فرمت کردن روند یکنواختی دارند و از ارائه توضیحات در این زمینه اجتناب می‌کنیم.


مونت کردن در واقع باعث می شود فایل های سیستمی در سرور در دسترس قرار گیرند، مونت کردن یک راه ساده ای است که فایل سیستم های جدید در دسترس قرار گیرند.


دو دستور اصلی که بصورت مکمل برای مونت کردن استفاده می شوند mount , umount می باشد.


دستور mount برای متصل کردن یک سیستم فایل به درخت فایل ها (file tree) می باشد. در سیستم عامل لینوکس یک فایل سلسه مراتبی (hierarchy ) بدون در نظر گرفتن اینکه از چند دستگاه فیزیکی مجزا تشکیل شده، در تمام سیستم بصورت یکپارچه در دسترس می باشد.



دستور umount (دقت کنید که با unmount اشتباه نشود) برای حذف کردن مونت یک سیستم فایل استفاده می شود، همچنین میتوان از دستور findmnt برای جمع اوری اطلاعات در مورد وضعیت مونت یک سیستم فایل، استفاده کرد.

استفاده از دستورات مونت

بیشترین استفاده از دستور mount برای فرمت کردن یا پارتیشن بندی یک دستگاه می باشد.







sudo mount /dev/sda1 /mnt






هنگام استفاده از این دستور، معمولا شما می‌خواهید آپشن های دیگری هم مشخص کنید، گرچه دستور mount می‌تواند سیستم فایل موجود را حدس بزند و شناسایی کند ولی بهتراست در سیستم فایل Ext4 در ادامه دستور از -t استفاده شود.





sudo mount -t ext4 /dev/sda1 /mnt



گزینه های مختلفی برای مونت کردن یک سیستم فایل وجود دارد، دستورات عمومی و آپشن های مستقل هنگام مونت کردن را می‌توانید با استفاده از دستور man mount مشاهده نمایید.


گزینه دیگری که به آن می‌پردازیم -o می‌باشد، برای مونت کردن یک پارتیشن با تنظیمات پیش فرض در ادامه دستور -o defaults را تایپ می‌کنیم. لازم به ذکر است تنظیمات پیش فرض برپایه rw,suid,dev,exec,auto,nouser,async می باشد .


اگر می‌خواهید دسترسی به خواندن و نوشتن محدود شود و بصورت فقط خواندنی (read only) مونت شود باید در ادامه دستور ro نوشته شود که با اینکار قابلیت خواندن که بصورت پیش فرض فعال می باشد غیرفعال می شود.










sudo mount -t ext4 -o defaults,ro /dev/sda1 /mnt



برای مونت کردن همه سیستم فایل های مشخص شده در مسیر /etc/fstab باید در ادامه دستور -a نوشته شود .





sudo mount -a



لیست گزینه های موجود در مونت کردن سیستم فایل:


برای نمایش گزینه موجود برای یک مونت کردن بصورت ویژه از دستور findmnt استفاده می‌کنیم، بعنوان مثال ما میخواهیم فقط مونت هایی که بصورت فقط خواندنی (read only) ایجاد شده اند را مشاهده کنیم، بدین منظور از دستور زیر استفاده می‌کنیم:






$ findmnt /mnt
Output
TARGET SOURCE FSTYPE OPTIONS
/mnt /dev/sda1 ext4 ro,relatime,data=ordered

اگر تجربه استفاده از از مونت های چندگانه را داشته باشید متوجه خواهید شد این دستور میتواند بصورت باورنکردنی مفید باشد.

آنمونت کردن یک سیستم فایل

برای آنمونت کردن یک سیستم فایل بطور کلی از دستور umount استفاده می‌کنیم باز هم تاکید می شود که دقت کنیدumount با unmount تفاوت دارد.
زمانی که می‌خواهید سیستم فایلی را آنمونت کنید، حتما مطمئن شوید فایل هایی که در آن سیستم فایل قرار دارند به آن ها نیازی ندارید یا توسط اپلیکیشن ها مورد استفاده قرار نمی‌گیرند.



$ cd ~


$ sudo umount /mnt






برای اغلب کاربران آنمونت کردن با تنظیمات پیش فرض کافی است و نیازی به تغییر دیگری نمی باشد.
نتیجه گیری:

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




منبع :


https://goo.gl/Ek4P8R