推薦-LINUX磁盤管理

Evernote Export

LINUX磁盤管理

linux學習筆記 磁盤分區 文件系統 掛載

在操作系統中,磁盤管理屬于設備管理的范疇。一塊硬盤安裝到主機之后稱為裸設備,若要能夠在Linux系統中使用必須對其進行如下步驟:分區=>格式化(創建文件系統)=>掛載

LINUX系統的設備類型

Linux沿襲Unix的風格,將所有設備認成是一個文件

  • 塊設備文件

    通常稱為“隨機設備”。所謂“塊設備”是指對其信息的存取以“塊”為單位,如通常的光盤、硬盤、軟盤、磁帶等,塊長取512、1024或4096字節。塊設備可以直接通過塊設備特別文件來訪問。為了提高數據的傳輸效率,塊設備驅動程序內部采用塊緩沖技術。

  • 字符設備文件

    通常稱為“線性設備”。所謂“字符設備”是指在I/O傳輸中以字符為單位進行傳輸的設備,如鍵盤,打印機等。不過需要注意的是以字符為單位并不一定意味著是以字節為單位,因為有的編碼規則規定,一個字符占16bit,合2個字節。

    Tips:

    1. 設備文件一般存放在/dev目錄下

    /dev/hd[a-t]:IDE設備
   /dev/sd[a-z]:SCSI設備
   /dev/fd[0-7]:標準軟驅
   /dev/md[0-31]:軟raid設備
   /dev/loop[0-7]:本地回環設備
   /dev/ram[0-15]:內存
   /dev/null:無限數據接收設備 ,相當于回收站
   /dev/zero:無限零資源,有點像冒泡機
   /dev/tty[0-63]:虛擬終端
   /dev/ttyS[0-3]:串口
   /dev/lp[0-3]:并口
   /dev/console:控制臺
   /dev/fb[0-31]:framebuffer
   /dev/cdrom -> /dev/hdc
   /dev/modem -> /dev/ttyS[0-9]
   /dev/pilot -> /dev/ttyS[0-9]
   /dev/console:控制臺
  1. 控制臺和虛擬終端的區別與聯系:
    控制臺就好比電視機上的按鈕,終端好比遙控板,他們的目的都是控制電視機,但是控制臺必須在本地,而終端可以在遠端,系統只有一個控制臺,叫console,其他的都是終端

  2. 設備號碼:
               主設備號:major number, 標識設備類型
               次設備號:minor number, 標識同一類型下的不同設備

磁盤類型
  1. 并行:
     IDE:集成磁盤電子接口,Integrated Device Electronics,并行傳輸數據, 最大的理論傳輸速率為133MB/s
     SCSI:Small Computer System Interface, UltraSCSI   標準傳輸速率為320MB/s   常見轉速:10000 RPM, 15000RPM

  2. 串口
     SATA:全稱是Serial Advanced Technology Attachment(串行高級技術附件,一種基于行業標準的串行硬件驅動器接口)就是我們現在經常所說的SATA; 常見的理論傳輸速率:300MB/s, 600MB/s, 6Gb/s
     SAS:串行版的SCSI硬盤,最大傳輸速率:6Gbps
     USB:480MB/s

磁盤分區
  1. 磁盤為什么需要分區?(why)

    如果沒有分區,我們要在一個磁盤上安裝兩個以上的操作系統是無法辦到的。因此,每一個分區可以當做獨立的文件系統來使用以便于安裝多個操作系統,這就是磁盤需要分區的原因。

  2. 如何分區

    一個硬盤最多可以有4個(主+擴展)分區,其中,擴展分區只能有一個,分區的形式只能有兩種:
                                     P+P+P+P  
                                     P+P+P+E
     //P表示主分區,E表示擴展分區(擴展分區保存的是磁盤的二級分區表,它指向具體的邏輯分區)

  3. MBR

    引導扇區在每個分區里都存在,但我們常說的主引導扇區是硬盤的第一物理扇區。它位于磁盤的0磁頭0柱面1扇區且由兩個部分組成:主引導記錄MBR+硬盤分區表DPT,其中主引導記錄的作用就是檢查分區表是否正確以及確定哪個分區為引導分區,并在程序結束時把該分區的啟動程序(也就是操作系統引導扇區)調入內存加以執行。
     在總共512字節的主引導扇區里其中MBR占446個字節(偏移0– 偏移1BDH),DPT占64個字節(偏移1BEH–偏移1FDH),最后兩個字節“55,AA”(偏移1FEH偏移1FFH)是分區的結束標志,稱為“魔數(MagicNumber)”,表示當前分區是否可引導(5A表示可引導)。

  4. 磁盤分區管理工具

    命令名稱:fdisk
     命令所在路徑:/sbin/fdisk
     執行權限:root
     功能描述:磁盤分區相關操作,最多支持15個分區
     語法:fdisk [option] [DEVICE]
     常用選項:
                 -l:查看當前磁盤分區的詳細情況
                 p: print, 顯示已有分區;
                 n: new, 創建
                 d: delete, 刪除
                 w: write, 寫入磁盤并退出
                 q: quit, 放棄更新并退出
                 m: 獲取幫助
                 l: 列表所分區id
                 t: 調整分區id
     查看內核是否已經識別新的分區:
             # cat /proc/partations
     通知內核重新讀取硬盤分區表:
             partx -a /dev/DEVICE
                 -n M:N
     kpartx -a /dev/DEVICE
                 -f: force
     CentOS 5: 使用partprobe
                 partprobe [/dev/DEVICE]

Linux文件系統管理

  1. 文件系統類型
       1. minix:是Minix操作系統使用的文件系統,是Linux最先使用的文件系統。它有許多缺點:分區只能小于64MB,只支持短文件名,單一的時間戳,等等。在軟盤和動態磁盤領域仍然有用。
       2. ext:是對Minix的擴展。已完全被ext2取代,內核最終將不會支持它。
       3. ext2 :是Linux使用的,性能很好的文件系統,用于固定文件系統和可活動文件系統。它是作為ext文件系統的擴展而設計的。ext2在Linux所支持的文件系統中,提供最好的性能(在速度和CPU使用方面),簡短的說,ext2是Linux的主要文件系統。
       4. ext3 :是對ext2增加日志功能后的擴展。是RHEL5中默認使用的文件系統類型。它向前、向后兼容ext2,意為ext2不用丟失數據和格式化就可以轉換為ext3,ext3也可以轉換為ext2 而不用丟失數據(只要重新安裝該分區就行了),強烈推薦使用這種文件系統。
       5. ext4:為第4代擴展文件系統,是RHEL6中默認使用的文件系統類型,屬于典型的日志型文件系統。其特點是保持有磁盤存取記錄的日志數據,便于恢復,性能和穩定性更加出色。
       6. ReiserFS/JFS:仍然在完善的帶日志文件系統,特別適合小文件的文件系統
        7. ISO9660文件系統:該文件系統中光盤所使用的標準文件系統,Linux對該文件系統也有很好的支持,不僅能讀取光盤和光盤ISO映像文件,而且還支持在Linux環境中刻錄光盤。
        8. NFS文件系統:NFS即網絡文件系統,用于在UNIX系統間通過網絡進行文件共享,用戶可將網絡中NFS服務器提供的共享目錄掛載到本地的文件目錄中,從而實現操作和訪問NFS文件系統中的內容。
        9. swap文件系統:swap文件系統用于Linux的交換分區。在Linux中,使用整個交換分區來提供虛擬內存,其分區大小一般應是系統物理內存的2倍,在安裝Linux操作系統時,就應創建交換分區, 它是Linux正常運行所必需的,其類型必須是swap,交換分區由操作系統自行管理。
          10. btrfs:由Oracle于2007年宣布并進行中的COW(copy-on-write式)文件系統。目標是取代Linux目前的ext3文件系統,改善ext3的限制,特別是單一文件大小的限制,總文件系統大小限制以及加入文件校驗和特性。加入目前ext3/4未支持的一些功能,例如可寫的磁盤快照(snapshots),以及支持遞歸的快照(snapshots of snapshots),內建磁盤陣列(RAID)支持,支持子卷(Subvolumes)的概念,允許在線調整文件系統大小。

tips:根據其是否支持”journal”功能可以分為:

日志型文件系統: ext3, ext4, xfs, …
     非日志型文件系統: ext2, vfat
 什么是日志呢?
 元數據是關于數據的組織、數據域及其關系的信息,簡言之,元數據就是關于數據的數據日志文件是用于記錄系統操作事件的記錄文件或文件集合
 當數據存儲完成后,日志需要挪動到元數據區,當數據沒有存儲完,會被記錄到日志中,檢索排故時只需檢測日志區就可以
  大部分文件系統都是在內核中實現的

2. 文件系統的組成部分

文件系統是LINUX系統的心臟部分,提供了層次結構的目錄和文件。文件系統將磁盤空間劃分為每1024個字節一組,稱為塊(block)。編號從0到整個磁盤的最大塊數。一個磁盤分成一個或多個分區,每個分區可以包含一個文件系統,一個分區分為三部分:

inode.png

超級塊, 文件系統中第一塊被稱為超級塊。這個塊存放文件系統本身的結構信息,比如每個區域的大小,未被使用的磁盤塊的信息。
 inode, 超級塊的下一個部分就是inode表,文件系統中的每個文件在該表中都對應一個inode。inode是固定長度的記錄項,它包含有關文件的大部分信息。inode是指在許多“類Unix文件系統”中的一種數據結構。每個inode保存了文件系統中的一個文件系統對象(包括文件、目錄、設備文件、socket、管道, 等等)的元信息數據,但不包括數據內容或者文件名。 文件系統創建(格式化)時,就把存儲區域分為兩大連續的存儲區域。一個用來保存文件系統對象的元信息數據,這是由inode組成的表,每個inode默認是256字節或者128字節。另一個用來保存“文件系統對象”的內容數據,劃分為512字節的扇區,以及由8個扇區組成的4K字節的塊。塊是讀寫時的基本單位。一個文件系統的inode的總數是固定的。這限制了該文件系統所能存儲的文件系統對象的總數目。典型的實現下,所有inode占用了文件系統1%左右的存儲容量。
 數據區, 文件的內容保存在這個區域上,磁盤上所有塊的大小都一樣,如果文件包含了超過一個塊的內容,則文件內容會存放在多個磁盤塊中,并把磁盤塊的分配情況記錄在文件的i節點中的磁盤序列表中。

  1. 文件系統管理工具

  1. # mkfs.FS_TYPE /dev/DEVICE

  2. # mkfs -t FS_TYPE /dev/DEVICE
         -L ‘LABEL’: 設定卷標, 有了卷標就可以應用卷標而不是分區盤符
         -b  如果不用則文件系統將會占用全部的空間
          example:
          mkfs.ext4 /dev/sda#    在sda#上格式化創建ext4文件系統

  3. mke2fs:ext系列文件系統專用管理工具
         -t {ext2|ext3|ext4}
         -b {1024|2048|4096}
         -L ‘LABEL’
         -j: 相當于 -t ext3
             mkfs.ext3 = mkfs -t ext3 = mke2fs -j = mke2fs -t ext3
         -i #: 為數據空間中每多少個字節創建一個inode;此大小不應該小于block的大??;
         -N #:為數據空間創建個多少個inode;
         -m #: 為管理人員預留的空間占據的百分比;
         -O FEATURE[,…]:啟用指定特性
             -O ^FEATURE:關閉指定特性

  4. mkswap:創建交換分區
         mkswap [options] device
             -L ‘LABEL’
         前提:調整其分區的ID為82;

  5. 其它常用工具:
         blkid:塊設備屬性信息查看
         ….blkid [OPTION]… [DEVICE]
             ……-U UUID: 根據指定的UUID來查找對應的設備
             ……-L LABEL:根據指定的LABEL來查找對應的設備
             e2label:管理ext系列文件系統的LABEL
             ….# e2label DEVICE [LABEL]
             tune2fs:重新設定ext系列文件系統可調整參數的值
         ……-l:查看指定文件系統超級塊信息;super block
         ……-L ‘LABEL’:修改卷標
         ……-m #:修預留給管理員的空間百分比
         ……-j: 將ext2升級為ext3
         ……-O: 文件系統屬性啟用或禁用
         …..-o: 調整文件系統的默認掛載選項
         …..-U UUID: 修改UUID號;
     dumpe2fs:文件系統的組織結構信息
         ……-h:查看超級塊信息,不加-h則顯示文件系統的組織結構信息

  6. 文件系統檢測
         fsck: File System CheCk
         fsck.FS_TYPE
         fsck -t FS_TYPE
             -a: 自動修復錯誤(自動修復可能會有問題)
             -r: 交互式修復錯誤
             Note: FS_TYPE一定要與分區上已經文件類型相同;
     e2fsck:ext系列文件專用的檢測修復工具
         -y:自動回答為yes;  
         -f:強制修復;

文件系統掛載

將額外文件系統與根文件系統某現存的目錄建立起關聯關系,進而使得此目錄做為其它文件訪問入口的行為稱之為掛載,解除此關聯關系的過程稱之為卸載

  1. 掛載方法:mount DEVICE MOUNT_POINT

    mount:通過查看/etc/mtab文件顯示當前系統已掛載的所有設備
         mount [-fnrsvw] [-t vfstype] [-o options] device dir
         – device:指明要掛載的設備;
                 (1) 設備文件:例如/dev/sda5
                 (2) 卷標:-L ‘LABEL’, 例如 -L ‘MYDATA’
                 (3) UUID, -U ‘UUID’:例如 -U ‘0c50523c-43f1-45e7-85c0-a126711d406e’
                 (4) 偽文件系統名稱:proc, sysfs, devtmpfs, configfs
         – dir:掛載點
                 事先存在;建議使用空目錄;
                 進程正在使用中的設備無法被卸載;
         – 常用命令選項
         -t vsftype:指定要掛載的設備上的文件系統類型;
                         -r: readonly,只讀掛載;
                         -w: read and write, 讀寫掛載;
                         -n: 不更新/etc/mtab;  
                         -a:自動掛載所有支持自動掛載的設備;(定義在了/etc/fstab文件中,且掛載選項中有“自動掛載”功能)
                         -L ‘LABEL’: 以卷標指定掛載設備;
                         -U ‘UUID’: 以UUID指定要掛載的設備;
                         -B, –bind: 綁定目錄到另一個目錄上;
         注意:查看內核追蹤到的已掛載的所有設備:cat /proc/mounts
         -o options:(掛載文件系統的選項)
                 async:異步模式;
                 CoW:Copy on Write寫時復制:在內存中處理數據時,不直接改變數據,而是將處理后的數據另外復制至另一處空間中,并把原數據地址指向處理后的數據。
                sync:同步模式;
                 atime/noatime:包含目錄和文件;
                 diratime/nodiratime:目錄的訪問時間戳
                 auto/noauto:是否支持自動掛載
                 exec/noexec:是否支持將文件系統上應用程序運行為進程
                 dev/nodev:是否支持在此文件系統上使用設備文件;
                 suid/nosuid:suid權限
                 remount:重新掛載
                 ro:
                 rw:
                 user/nouser:是否允許普通用戶掛載此設備
                 acl:啟用此文件系統上的acl功能
         – 注意:上述選項可多個同時使用,彼此使用逗號分隔;
                       默認掛載選項:defaults(rw, suid, dev, exec, auto, nouser, and async)

  2. 卸載方法

    # umount DEVICE
         # umount MOUNT_POINT
         查看正在訪問指定文件系統的進程:
         # fuser -v MOUNT_POINT
         終止所有在正訪問指定的文件系統的進程:
         # fuser -km MOUNT_POINT

  3. 掛載交換分區

    啟用:swapon
             swapon [OPTION]… [DEVICE]
                 -a:激活所有的交換分區;
                 -p PRIORITY:指定優先級;
         禁用:swapoff [OPTION]… [DEVICE]

  4. 內存空間使用狀態

    free [OPTION]
             -m: 以MB為單位
             -g: 以GB為單位
             LINUX內存管理策略:對于重要的應用LINUX會盡量把這些進程的數據緩存至內存中
     total  used(包含了正常使用的,也有buffers和cached的)
      free shared buffers  cached,used-buffers-cached表示真正剩余的內存空間

  5. 文件系統空間占用等信息的查看工具

    df:  
             -h: human-readable
             -i:inodes instead of blocks
             -P: 以Posix兼容的格式輸出;

  6. 查看某目錄總體空間占用狀態

    du:(disk usage)
             du [OPTION]… DIR
                 -h: human-readable
                 -s: summary

  7. 文件系統的配置文件

    文件掛載的配置文件:/etc/fstab,文件中每行定義一個要掛載的文件系統,包含了要掛載的設備或偽文件系統 、掛載點、文件系統類型 、掛載選項 、轉儲頻率 、自檢次序。

[root@localhost ~]# cat /ect/fstab
[root@localhost ~]# cat /etc/fstab
# /etc/fstab
# Created by anaconda on Mon Mar 7 14:55:31 2016
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=64678c15-3878-490a-9a0b-80751a1f5bc9 / ext4 defaults 1 1
UUID=fa1d8b52-e334-412a-b3aa-1790bb95f425 /boot ext4 defaults 1 2
UUID=83d36596-8312-4ee6-aac7-db41374f1ad1 swap swap defaults 0 0
tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
  • 要掛載的設備或偽文件系統
     可以是:設備文件、LABEL(LABEL=”“)、UUID(UUID=”“)或者是偽文件系統名稱(proc, sysfs)

    • 掛載點

    • 文件系統類型

    • 掛載選項:-
       defaults(使用默認掛載選項),也可以使用多個掛載選項,并用逗號隔開(如defaults,acl)

  • 轉儲頻率:
     0:不做備份
     1:每天轉儲
     2:每隔一天轉儲
     指的是我們多長時間備份一次,一般不會使用了,大多數都為0,主要使用dump命令來實現,一般備份都會使用專門的備份工具,這種機制一般很少用

  • 自檢次序:
     0:不自檢
     1:首先自檢;一般只有rootfs才用1;
     2 :兩個文件系統都為2表示同時進行自檢
     tip:對于我們自己指定的文件系統的一般不進行自動自檢,有可能需要開機手動修復一些文件,自檢有可能會刪除一些重要數據
     swap的掛載點就叫swap ,swap的激活是通過swapon,而不是通過mount

原創文章,作者:芥末,如若轉載,請注明出處:http://www.www58058.com/14027

(0)
芥末芥末
上一篇 2016-04-05
下一篇 2016-04-05

相關推薦

  • 馬哥教育網絡班21期+第七周博客作業

    1、創建一個10G分區,并格式為ext4文件系統;    (1) 要求其block大小為2048, 預留空間百分比為2, 卷標為MYDATA, 默認掛載屬性包含acl;    (2) 掛載至datamydata目錄,要求掛載時禁止程序自動運行,且不更新文件的訪問時間戳 [root@ns1 ~]# m…

    Linux干貨 2016-08-24
  • 訪問控制列表ACL使用說明

    一、什么是ACL ACL(Access Control List)可靈活地,更細粒度地定義訪問文件或目錄的權限。 二、為什么使用ACL Linux上文件系統的文件系統權限管理的對象分為三類:owner,group,other。這種分類非常簡單,如果我希望有一個用戶擁有不同于這三類對象的權限,或者再定義一個用戶組的權限,傳統的權限管理就不能實現,而ACL可以很…

    Linux干貨 2016-08-08
  • N26-上海-莫言

    持續更新…

    Linux干貨 2016-12-26
  • 優云Monitor:大規模Docker平臺自動化監控之路

    本文介紹了通過優云Monitor,如何實現大規模容器運維平臺的自動化監控需求。 盡管Docker技術目前還處于不穩定的發展與標準制定階段,但這門技術已經呈現了極其火熱的增長狀態,卻已經是不爭的實事。到底有多火熱?讓我們先來看一張來自國外監控公司DataDog 2016年最新調查報告: 從圖中可以看出,自2015年5月后,采用容器技術的應用呈現了30%的大幅增…

    2016-08-05
  • linux 軟件包管理

    1、Linux軟件包管理 Redhat, SUSE: RPM Redhat Package Manager PRM is Package Manager 前端工具:yum, apt-get 后端工具:RPM, dpt   2、rpm: 數據庫:/var/lib/rpm  rpm包: 軟件包作者下載源程序,編譯配置完成后,制作成rpm包 格…

    Linux干貨 2017-08-06
  • lvs集群搭建

    Linux Cluster: Cluster:計算機集合,為解決某個特定問題組合起來形成的單個系統; Linux Cluster類型:LB:Load Balancing,負載均衡;HA:High Availiablity,高可用;A=MTBF/(MTBF+MTTR)(0,1):90%, 95%, 99%, 99.5%,  99.9%, 99.99%…

    2017-05-09

評論列表(1條)

  • stanley
    stanley 2016-04-05 22:56

    已置頂,同時歡迎加入免檢一族。
    這好的文章一定要寫標簽增加收錄。

欧美性久久久久