日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

Linux(六) 磁盘与文件系统

發(fā)布時間:2024/4/30 linux 78 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux(六) 磁盘与文件系统 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

磁盤與文件系統(tǒng)

一、磁盤物理結構


1. 磁盤 :由一個個盤片構成 , 從盤片的結構上看 , 圖中的一圈圈灰色同心圓為一條條磁道 , 從圓心向外畫直線 , 可以將磁道劃分為若干個弧段 , 每一個磁道上一個弧段被稱為一個扇區(qū) , 扇區(qū)是磁盤的最小組成單元 , 通常是512字節(jié) 。
2.

2. 磁盤分區(qū): 指定分割區(qū)域起始與結束磁柱
3. 磁盤分區(qū)是告訴操作系統(tǒng) , 磁盤在此分割區(qū)域內 。 例如A磁柱到B磁柱之間的區(qū)塊 , 如此一來 , 操作系統(tǒng)灸能夠知道他可以指定區(qū)塊進行文件讀寫查詢操作 。
4. 格式化: 因為每種操作系統(tǒng)所設定的文件屬性\權限 , 以及存放數(shù)據(jù)的格式不同 , 所以使用硬盤之前需要進行格式化 。

二、 文件系統(tǒng)

  • Ext2\Ext3\Ext4的區(qū)別
  • 這三個都是文件系統(tǒng)格式
  • Linux kernel自2.6.28開始正式支持新的文件系統(tǒng)Ext4
  • Ext4是Ext3的改進版 , 修改了Ext3中部分重要的數(shù)據(jù)結構 。
  • Ext3相比于Ext3而言 , 只是增加了一個日志系統(tǒng)而已 。 Ext4可以提供更佳的性能和可靠性 ,還有更為豐富的功能 , 更大的文件系統(tǒng)和文件 。
  • 較之Ext3所支持的最大16TB文件系統(tǒng)和最大2TB文件 , Ext4分別支持1EB(1048576TB 1EB = 1024PB 1PB = 1024TB)的文件系統(tǒng)和16TB的文件 。
  • Ext3只支持32000個子目錄 ,而Ext4支持無限數(shù)量的子目錄 。
  • Extents(區(qū)段)
  • Ext3采用間接塊映射 , 當操作大文件時 , 效率極其低下 , 比如一個100MB的文件 , 在Ext3中要建立25600個數(shù)據(jù)塊(每個數(shù)據(jù)塊為4kb)的映射表 。在Ext3中 , 每個物理塊都要一個邏輯結構與之相對應。
  • Ext4引入了Extents的概念 。 提高效率 。 每個Extents為一組連續(xù)的數(shù)據(jù)塊 , 理想情況下 , 上述文件則只需要一個Extent來記錄映射掛關系 。
  • 多塊分配
  • 當寫入數(shù)據(jù)到Ext3文件系統(tǒng)中時 , Ext3的數(shù)據(jù)塊分配器每次只能分配一個4kb的塊 , 寫一個100MB的文件就要調用25600次數(shù)據(jù)塊 , 而Ext4的多塊分配器支持一次調用分配多個數(shù)據(jù)塊 。
  • 延遲分配
  • Ext3的數(shù)據(jù)塊分配策略是盡快分配 。 而Ext4的分配策略是盡可能的延遲分配 。 知道文件在catch中 寫完才開始分配數(shù)據(jù)塊寫入磁盤 。
  • 如此能優(yōu)化整個文件的數(shù)據(jù)塊分配 , 顯著提升性能 。
  • 快速fsck(文件系統(tǒng)檢查)
  • 老的fsck會很慢 , 因為他要檢查所有的inode
  • Ext4給每個組的inode表中過他們 , 而只是去檢查那些在用的inode添加了 一份未使用的inode的列表 , 執(zhí)行fsck就可以跳。
  • 日志校驗
  • 日志是最常用的部分,也極易導致磁盤硬件故障 , 而從損壞的日志中 恢復數(shù)據(jù)會導致更多的數(shù)據(jù)損壞 。
  • Ext4的日志校驗功能可以很方便的判斷日志數(shù)據(jù)是否損壞 , 將過去兩階段日志機制合并成一段 , 提高性能 。
  • 兩階段日志提交:
  • 文件系統(tǒng)將準備執(zhí)行的事務的具體內容寫入日志
  • 文件系統(tǒng)進行操作
  • 操作成功之后, 將事務的具體內容從日志中刪除 。
  • 無日志(Nojournaling)模式
  • Ext4允許關閉日志 , 以便某些有特殊需求的用戶可以借此進一步提升性能 。
  • 在線碎片管理
  • Ext4支持在線碎片整理 , 并提供e4defrag工具進行個別文件或整個文件系統(tǒng)的碎片整理 。
  • inode相關特性
  • Ext4支持更大的inode , 較之Ext3默認的inode大小128字節(jié) , Ext4為了在inode中容納更多的擴展特性(如納秒時間戳或inode版本) , 默認inode大小為256字節(jié)
  • 持久預分配
  • P2P軟件為了 保證下載文件有足夠的空間存放 , 常常會預先創(chuàng)建一個與下載文件相同的空文件 , 以免未來的數(shù)小時或 數(shù)天之內磁盤空間不足導致下載失敗。 Ext4在文件系統(tǒng)層面實現(xiàn)了持久預分配并提供相應的API , 比應用軟件自己實現(xiàn)更有效率。
  • swap介紹

  • 使用磁盤存儲 , 內存不夠而”溢出”的內容 。
  • 當系統(tǒng)的物理內存不夠用的時候 , 就需要將物理內存中的一部分空間釋放出來 , 以供當前運行的程序使用。
  • 最容易成為被釋放的對象 : 一些很長時間沒有操作的程序 。 一些被釋放的空間被臨時保存在Swap空間中 。 等到那些被換出的程序要繼續(xù)運行時 , 再從Swap中恢復保存的數(shù)據(jù)到內存中 。
  • 一般來說可以按照如下規(guī)則設置Swap大小:
  • 4G的物理內存 , SWAP設置為內存的2倍 。
  • 4G-8G的物理內存 , SWAP設置為內存相同大小
  • 8G-64G的物理內存 , SWAP設置為8G
  • 64G-256G的物理內存 , SWAP設置為16G
  • 系統(tǒng)什么時候會使用swap?

  • 實際上并不是等所有的物理內存全部消耗完之后 , 才去使用swap空間

    [root@localhost ~]# cat /proc/sys/vm/swappiness 60 默認值是60 。 swappiness = 0時表示最大限度的使用物理內存 , 然后才是swap空間 , swappiness = 100 時 表示積極使用swap空間 , 并且把內存上的數(shù)據(jù)及時搬運到swap空間
  • 修改swap參數(shù):

  • 臨時性修改

    [root@localhost ~]#sysctl vm.swappiness = 10 vm.swappiness = 10 [root@localhost ~]# cat /proc/sys/vm/swappiness 10 這里已經(jīng)做了修改 , 但是重啟系統(tǒng)之后又會變成60 。
  • 永久修改

    在/etc/sysctl.conf文件中添加如下參數(shù) : vm.swappiness = 10 操作: [root@localhost ~]# vim /etc/sysctl.conf 按i 寫入vm.swappiness = 10 按esc 輸入wq(保存并退出)回車
  • swap開啟與關閉

    開啟 swapon -a 關閉 swapoff -a
  • 三、文件系統(tǒng)的操作

  • 掛載點

  • 每個文件系統(tǒng)都有獨立的 inode/block/superblock等信息 , 這個文件系統(tǒng)要能夠鏈接到目錄樹才能被我們使用 。 將文件系統(tǒng)和目錄樹結合的動作稱為掛載 。
  • 掛載點一定是目錄 , 此目錄為文件系統(tǒng)的入口 。
  • mount命令 : 將設備掛載到某個目錄
  • mount常用參數(shù)
  • -t : 指定設備的文件系統(tǒng)類型
  • Ext4 linux目前常用的文件系統(tǒng)
  • nfs 網(wǎng)絡文件系統(tǒng)
  • iso9660 CD-ROM光盤標準文件系統(tǒng)
  • auto 自動檢測文件系統(tǒng)
  • -o 指定掛載文件系統(tǒng)時的選項
  • ro 以只讀的方式掛載
  • rw 以讀寫方式掛載
  • umount :卸載目錄或是掛載點
  • 實例:

    [outman02@bogon tj]$ df -h Filesystem Size Used Avail Use% Mounted on /dev/sda2 8.6G 2.5G 5.7G 31% / tmpfs 491M 228K 491M 1% /dev/shm /dev/sda1 291M 34M 242M 13% /boot [outman02@bogon tj]$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sr0 11:0 1 1024M 0 rom sda 8:0 0 10G 0 disk ├─sda1 8:1 0 300M 0 part /boot ├─sda2 8:2 0 8.7G 0 part / └─sda3 8:3 0 1G 0 part [SWAP] [outman02@bogon tj]$ su Password: [root@bogon tj]# mount /dev/sda1 /tj/udisk mount: mount point /tj/udisk does not exist [root@bogon tj]# mount /dev/sda1 outman02/tj/udisk mount: mount point outman02/tj/udisk does not exist [root@bogon tj]# ll total 12 drwxr-xr-x. 2 root root 4096 Nov 2 06:02 a drwxr-xr-x. 2 root root 4096 Nov 2 06:02 b drwxr-xr-x. 2 root root 4096 Nov 4 23:53 udisk [root@bogon tj]# mount /dev/sda1 /udisk mount: mount point /udisk does not exist [root@bogon tj]# mount /dev/sda1 udisk [root@bogon tj]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sr0 11:0 1 1024M 0 rom sda 8:0 0 10G 0 disk ├─sda1 8:1 0 300M 0 part /boot ├─sda2 8:2 0 8.7G 0 part / └─sda3 8:3 0 1G 0 part [SWAP] [root@bogon tj]# df -h Filesystem Size Used Avail Use% Mounted on /dev/sda2 8.6G 2.5G 5.7G 31% / tmpfs 491M 228K 491M 1% /dev/shm /dev/sda1 291M 34M 242M 13% /boot /dev/sda1 291M 34M 242M 13% /home/outman02/tj/udisk**如果掛載后查看U盤內容出現(xiàn)亂碼** [root@bogon tj]# locale LANG=en_US.UTF-8 LC_CTYPE="en_US.UTF-8" LC_NUMERIC="en_US.UTF-8" LC_TIME="en_US.UTF-8" LC_COLLATE="en_US.UTF-8" LC_MONETARY="en_US.UTF-8" LC_MESSAGES="en_US.UTF-8" LC_PAPER="en_US.UTF-8" LC_NAME="en_US.UTF-8" LC_ADDRESS="en_US.UTF-8" LC_TELEPHONE="en_US.UTF-8" LC_MEASUREMENT="en_US.UTF-8" LC_IDENTIFICATION="en_US.UTF-8" LC_ALL= [root@bogon tj]# man mount [root@bogon tj]# mount -o iocharset=utf-8 /dev/sda1 /home/outman02/tj/udisk
  • /etc/fstab文件:開機一道的時候自動掛載到Linux的文件系統(tǒng) 。
  • df :列出文件系統(tǒng)整體磁盤使用情況

  • -a : 列出所有文件系統(tǒng)
  • -k : 以Bytes對的容量顯示文件系統(tǒng)
  • -m : 以MBytes的容量顯示文件系統(tǒng)
  • -h : GBytes、MBytes、KByte等格式自行顯示
  • -i : 以inode數(shù)量顯示

    [root@bogon tj]# df Filesystem 1K-blocks Used Available Use% Mounted on /dev/sda2 8985528 2600612 5928468 31% / tmpfs 502204 228 501976 1% /dev/shm /dev/sda1 297485 34642 247483 13% /boot /dev/sda1 297485 34642 247483 13% /home/outman02/tj/udisk [root@bogon tj]# df -a Filesystem 1K-blocks Used Available Use% Mounted on /dev/sda2 8985528 2600612 5928468 31% / proc 0 0 0 - /proc sysfs 0 0 0 - /sys devpts 0 0 0 - /dev/pts tmpfs 502204 228 501976 1% /dev/shm /dev/sda1 297485 34642 247483 13% /boot none 0 0 0 - /proc/sys/fs/binfmt_misc vmware-vmblock 0 0 0 - /var/run/vmblock-fuse /dev/sda1 297485 34642 247483 13% /home/outman02/tj/udisk [root@bogon tj]# df -k Filesystem 1K-blocks Used Available Use% Mounted on /dev/sda2 8985528 2600628 5928452 31% / tmpfs 502204 228 501976 1% /dev/shm /dev/sda1 297485 34642 247483 13% /boot /dev/sda1 297485 34642 247483 13% /home/outman02/tj/udisk [root@bogon tj]# df -m Filesystem 1M-blocks Used Available Use% Mounted on /dev/sda2 8775 2540 5790 31% / tmpfs 491 1 491 1% /dev/shm /dev/sda1 291 34 242 13% /boot /dev/sda1 291 34 242 13% /home/outman02/tj/udisk [root@bogon tj]# df -h Filesystem Size Used Avail Use% Mounted on /dev/sda2 8.6G 2.5G 5.7G 31% / tmpfs 491M 228K 491M 1% /dev/shm /dev/sda1 291M 34M 242M 13% /boot /dev/sda1 291M 34M 242M 13% /home/outman02/tj/udisk
  • du : 文件系統(tǒng)的磁盤使用量或是目錄使用量

  • -a : 列出所有文件的目錄容量
  • -h : 以人們易讀的格式(G/M)顯示
  • -s : 列出總量 , 而不列出每個個別目錄占用容量
  • -k : 以Bytes列出容量顯示
  • -m : 以MBytes列出容量顯示

    [root@bogon tj]# du 251 ./udisk/efi/EFI/redhat 24439 . [root@bogon tj]# du -a 3 ./udisk/grub/splash.xpm.gz 16 ./udisk/grub/reiserfs_stage1_5 2 ./udisk/grub/device.map 1 ./udisk/grub/menu.lst 276 ./udisk/grub 24427 ./udisk 4 ./a 4 ./b 24439 . [root@bogon tj]# du -h 13K ./udisk/lost+found 276K ./udisk/grub 24M ./udisk 24M . [root@bogon tj]# du -s 24439 . [root@bogon tj]# du -k 24427 ./udisk 4 ./a 4 ./b 24439 . [root@bogon tj]# du -m 1 ./udisk/efi/EFI/redhat 1 ./b 24 .
  • dumpe2fs : 觀察文件系統(tǒng)

  • dumpe2fs [options]

  • -h : 僅列出superblock的數(shù)據(jù) , 不會列出其他區(qū)段的內容

    [root@localhost ~]#dummpe2fs -h /dev/sda1
  • 總結

    以上是生活随笔為你收集整理的Linux(六) 磁盘与文件系统的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。