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

پیدا کردن گنجایش حافظه و میزان حجم استفاده شده از حافظه به کمک df
اغلب مهمترین اطلاعاتی که از سیستم موردنیاز است، چگونگی پیدا کردن گنجایش اصلی سیستم و همچنین میزان حجم مصرفی از حافظه سیستم می باشد. بدین منظور میتوان از دستور df استفاده کرد. بصورت پیش فرض خروجی این دستور اندازه گیری ۱ هزار بلاک که معمولا بصورت مفید استفاده نشده اند می باشد و در ادامه دستور -h را مینویسیم، برای اینکه خروجی چاپ شده قابل فهم برای انسان باشد. بدلیل اینکه بصورت پیش فرض این دستور مقادیر را بر اساس هگزادسیمال نمایش می دهد و با -h این مقادیر بصورت مقادیر استاندارد مانند مگابایت و گیگابایت نمایش داده می شوند.
| 1 2 3 4 5 6 7 8 9 10 11 12 | $ 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 قرار دارد خالی می باشد و ۹۴ گیگ حافظه در دسترس دارد.
میتوانیم این مشخصات را با دستور زیر مشاهده کنیم:
| 1 2 3 4 5 6 7 8 9 | $ 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 (که در کرنل لینوکس بصورت ردپا درایور ها و دستگاه ها ثبت می شود)، آیا این حافظه فقط بصورت قابل استفاده بصورت خواندنی می باشد یا قابلیت نوشتن هم دارد، نوع پارتیشن و…
| 1 2 3 4 5 6 7 8 9 10 11 | $ 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 استفاده کرد.
| 1 2 3 4 5 6 | $ sudo lsblk —fs Output NAME   FSTYPE LABEL  UUID                                 MOUNTPOINT sda                                                        vda                                                        └─vda1 ext4   DOROOT c154916c–06ea–4268–819d–c0e36750c1cd / | 
–fs در برخی ورژن ها در دسترس نیست بجای آن میتوان از -o برای بدست آوردن اطلاعات مشابه استفاده کرد.
برای بدست آوردن اطلاعاتی در مورد توپولوژی دیسک دستور زیر را استفاده میکنیم.
| 1 2 3 4 5 6 | $ 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 استفاده کرد.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | $ 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 برای فرمت کردن یا پارتیشن بندی یک دستگاه می باشد.
| 1 | $ sudo mount /dev/sda1 /mnt | 
هنگام استفاده از این دستور، معمولا شما میخواهید آپشن های دیگری هم مشخص کنید، گرچه دستور mount میتواند سیستم فایل موجود را حدس بزند و شناسایی کند ولی بهتراست در سیستم فایل Ext4 در ادامه دستور از -t استفاده شود.
| 1 | $ sudo mount –t ext4 /dev/sda1 /mnt | 
گزینه های مختلفی برای مونت کردن یک سیستم فایل وجود دارد، دستورات عمومی و آپشن های مستقل هنگام مونت کردن را میتوانید با استفاده از دستور man mount مشاهده نمایید.
گزینه دیگری که به آن میپردازیم -o میباشد، برای مونت کردن یک پارتیشن با تنظیمات پیش فرض در ادامه دستور -o defaults را تایپ میکنیم. لازم به ذکر است تنظیمات پیش فرض برپایه rw,suid,dev,exec,auto,nouser,async می باشد .
اگر میخواهید دسترسی به خواندن و نوشتن محدود شود و بصورت فقط خواندنی (read only) مونت شود باید در ادامه دستور ro نوشته شود که با اینکار قابلیت خواندن که بصورت پیش فرض فعال می باشد غیرفعال می شود.
| 1 | $ sudo mount –t ext4 –o defaults,ro /dev/sda1 /mnt | 
برای مونت کردن همه سیستم فایل های مشخص شده در مسیر /etc/fstab باید در ادامه دستور -a نوشته شود .
| 1 | $ sudo mount –a | 
لیست گزینه های موجود در مونت کردن سیستم فایل:
برای نمایش گزینه موجود برای یک مونت کردن بصورت ویژه از دستور findmnt استفاده میکنیم، بعنوان مثال ما میخواهیم فقط مونت هایی که بصورت فقط خواندنی (read only) ایجاد شده اند را مشاهده کنیم، بدین منظور از دستور زیر استفاده میکنیم:
| 1 2 3 4 | $ findmnt /mnt Output TARGET SOURCE    FSTYPE OPTIONS /mnt   /dev/sda1 ext4   ro,relatime,data=ordered | 
اگر تجربه استفاده از از مونت های چندگانه را داشته باشید متوجه خواهید شد این دستور میتواند بصورت باورنکردنی مفید باشد.
آنمونت کردن یک سیستم فایل
برای آنمونت کردن یک سیستم فایل بطور کلی از دستور umount استفاده میکنیم باز هم تاکید می شود که دقت کنیدumount با unmount تفاوت دارد.
زمانی که میخواهید سیستم فایلی را آنمونت کنید، حتما مطمئن شوید فایل هایی که در آن سیستم فایل قرار دارند به آن ها نیازی ندارید یا توسط اپلیکیشن ها مورد استفاده قرار نمیگیرند.
| 1 2 | $ cd ~ $ sudo umount /mnt | 
برای اغلب کاربران آنمونت کردن با تنظیمات پیش فرض کافی است و نیازی به تغییر دیگری نمی باشد.
نتیجه گیری:
توضیحاتی که در این مقاله ارائه گردید بصورت کامل نمی باشد و همانطور که در ابتدای مقاله نیز ذکر شده است، موارد ذکر شده رایج ترین دستوراتی هستند که معمولا مدیر سرور ها بصورت روزانه از آن ها استفاده میکنند و فراگیری این دستورات در مدیریت بهتر سرور مفید خواهد بود.
بن مایه: https://blog.iranserver.com

 
						 
						