Linux系統的存儲管理

Linux的存儲管理node

 在linux的哲學思想中第一條,一切皆文件;因此對與物理磁盤的管理就是在系統中對文件的管理,即操做對應的設備文件便可;linux

 首先弄清楚機械硬盤的構造:微信

       track : 磁道
       sector: 扇區 ,512Byte(字節)如今所說的扇區,其實是平均值;
       cylinder:柱面,從磁道向全部盤片作投影
       patition:分區,分區就是基於柱面來劃分的存儲空間。
       head:磁頭,每一個磁盤表面都有一個磁頭;異步

 在linux中有專門的設備文件的存儲目錄——/devasync

     設備有兩種類型:ide

               ①塊設備:用於隨機訪問的設備,數據存儲和交換的單位是塊工具

               ②字符設備:用於線性訪問的設備,數據的交換單位通常是字符oop

     在RHEL六、CentOS6開始全部的接口類型的硬盤設備統一命名爲sd[a-z]ui

    wKioL1klkW3CYwTYAAAN7g1v1JY865.png

   (後面的數字表示磁盤的分區) spa

那麼開始使用硬盤,要明白的是如何分區,如何建立文件系統(格式化)和如何掛載分區

    磁盤的物理組成

       ⒈圓形的盤片,主要用來記錄數據

       ⒉機械手臂與機械手臂上的磁頭,讀寫數據

       ⒊主軸馬達,能夠轉動盤片,讓機械手臂的磁頭在盤片上讀寫數據

   盤片的物理組成

       ⒈扇區(sector)爲最小的存儲單位,大小爲512bytes

       ⒉第一個扇區很重要,須要經過它來讀取整個磁盤的狀態。裏面有MBR(主引導記錄)和DPT(分區表)

       ⒊MBR佔446bytes,DPT佔64byte,剩下兩位是分區有效標誌(55AA)

   MBR相關

   主引導記錄中包含了硬盤的一系列參數和一段引導程序。其中的硬盤引導程序的主要做用是檢查分區表是否正確而且在系統硬件完成自檢之後引導具備激活標誌的分區上的操做系統,並將控制權交給啓動程序。MBR是由分區程序(如Fdisk.exe)所產生的,它不依賴任何操做系統,並且硬盤引導程序也是能夠改變的,從而實現多系統共存。

   分區表相關

     ⒈64bytes的分區表最多分出4個區,成爲主分區或者擴展分區

     ⒉擴展分區最多隻能有一個

     ⒊擴展分區能夠再劃分出邏輯分區

     ⒋能夠被格式化的只有主分區和邏輯分區,擴展分區不能夠被格式化

     ⒌邏輯分區的數量上線根據不一樣的操做系統和硬盤格式而不一樣,linux中IDE硬盤最多劃分59個,SATA最多劃分11個(都是從5號開始)

              按照每一個扇區512bytes來算,一個分區的最大容量是2TB

      對於開機狀態下上插上SCSI接口的磁盤強制內核識別的方法:

            echo "---" &> /sys/class/scsi_host/host2/scan

 Ⅰ、如何分區

    一般分區使用的工具爲fdisk,gdisk

    注:若是使用fdisk或gdisk命令對於已經有分區並掛載的磁盤的剩餘空間進行再次分區,分區的信息即使是保存了,也不會被內核從新讀取;

     因此須要作如下操做就能從新讀取:

        1.重啓計算機;
        2.partprobe命令或者partx命令,強制內核重讀分區表;
             CentOS5/7:partprobe -a [device] 若是省略了設備名,則表示重讀全部磁盤的分區表
             CentOS6/7:partx -a [device]
                 kpartx -af [device(=設備名)]

 

    fdisk的使用:

        fdisk子命令:
            d  刪除分區
             l  列表已知的分區類型
            q  不保存退出編輯
            p  打印分區表

            n  建立新分區
               e  擴展分區
               p  主分區
               l  邏輯分區
            m  顯示幫助菜單
            t  修改分區的系統標識
            w  保存修改並保存

 Ⅱ、建立文件系統

        對於不一樣的發行版的linux,都有其默認的文件系統選擇;
          RHEL、CentOS
           5:ext3
           6:ext4
           7:xfs

     建立文件系統工具

        mkfs命令:

             mkfs [options] [-t type] [fs-options] device [size]

    注意:
         1.不要使用磁盤設備名稱和擴展分區設備名稱做爲mkfs命令的參數;
         若是使用磁盤設備做爲mkfs的參數,全部的分區都將被刪除
         若是使用擴展分區做爲mkfs的參數,全部的邏輯分區都將被刪除
         2.可以做爲mkfs命令參數的設備,是主分區設備和邏輯分區設備;

    1.若是隻計劃建立ext系列文件系統的話,能夠使用mke2fs命令:
        mke2fs
          mke2fs - create an ext2/ext3/ext4 filesystem
          經常使用選項:
           -b block-size:在建立文件系統時,調整塊大小;
           -i bytes-per-inode:指明inode與字節的比率;即:多少個字節建一個inode,默認值爲16384;
           -I inode-size :直接指定inode大小
           -J :建立有日誌功能的文件系統,就是ext3
           -N number-of-inodes:直接指名要給此文件系統建立的inode的數量;
           -m reserved-blocks-percentage:指定爲超級用戶root預留的磁盤空間的百分比;默認是5;
           -t fs-type:指定文件系統類型,ext2 ext3 ext4,默認是ext2
           -O [^]feature[,...]:(加^表示關閉 不加表示開啓)關閉或開啓文件系統的特性
           -L volume-label:爲文件系統指定卷標

    2.若是隻計劃修改ext系列文件系統的卷標,能夠使用e2label命令:
      e2label
      e2label - Change the label on an ext2/ext3/ext4 filesystem
      e2label device [ new-label ]

      注意: 若是不加捲標信息,表示查看指定設備的卷標;
             若是添加了倦鳥信息,表示修改指定設備的卷標;

    3.若是想要修改ext系列文件系統的屬性,能夠使用tune2fs命令:
      tune2fs
      tune2fs - adjust tunable filesystem parameters on ext2/ext3/ext4 filesystems

    4.調整那些在ext2,3,4文件系統上的可修改的參數;
         經常使用選項:
          -j:將ext2文件系統修改成ext3
          -m reserved-blocks-percentage:修改成超級用戶預留的磁盤空間百分比
          -o  [^]mount-options[,...]:修改文件系統默認的掛載選項
          -r reserved-blocks-count:修改成超級用戶預留的磁盤空間的塊的數量;
          -L  volume-name:修改文件系統的卷標
          -O [^]feature[,...]:修改文件系統的特性,將其關閉或啓用;
          -l :顯示超級塊的內容 至關於dumpe2fs -h

    5.文件系統的檢測修復工具:
     fsck
      -t fstype:指定要檢測的文件系統類型;
      -a:無需交互自動修復全部問題
      -r:交互式修復問題

    6.ext系列文件系統專門的檢測修復工具:
        e2fsck
         -y:在交互過程的全部的問題,都以「yes」回答;
         -f:強制檢測修復;即便文件系統處於clean狀態;

        blkid
          blkid - locate/print block device attributes
          blkid -L label:根據卷標進行查找
          blkid -U uuid:跟去UUID進行查找
        findfs
          findfs - find a filesystem by label or UUID
          findfs LABEL=label
          findfs UUID=uuid
     
   建立swap文件系統
     前提:分區類型必須是swap類型
       修改的方法是:在fdisk交互模式中,使用t命令將指定分區的類型修改成82便可

    mkswap
      mkswap - set up a Linux swap area
       -L LABEL:設置交互分區的卷標
       -f:強制執行

 Ⅲ、文件系統的掛載

      掛載用mount命令

     mount
         mount - mount a filesystem
         mount [-fnrsvw] [-t vfstype] [-o options] device dir

     經常使用選項:
       -r:readonly,以只讀的方式掛載目標文件系統;(光盤)
       -w:read and write,以讀寫的方式掛載目標文件系統;
       -n:默認狀況下,設備掛載或卸載的操做會同步更新到/etc/mtab中,若是在掛載時使用-n選項,表示咱們要禁用此特性,即使掛載成功,也不會更新到/etc/mtab中;
       -t vsftype:指明要掛載的設備上建立的文件系統類型;若是省略該選項,mount命令會經過blkid來判斷要掛載的目標設備的文件系統類型;
       -L LABEL:掛載文件系統時,使用卷標代替設備名稱
       -U UUID:掛載文件系統時,使用UUID代替設備名稱;
       -a:mount -a:按照/etc/fstab文件中填寫的設備進行自動掛載
       -o option:
         sync/nosync:同步/異步操做
         atime/noatime:文件或目錄被讀取訪問時,是否更新訪問時間戳;
         diratime/nodiratime:目錄被讀取訪問時,是否更新訪問時間戳;
         ro/rw:是以只讀/讀寫的方式掛載文件系統
         dev/nodev:在此文件系統中是否容許建立設備文件;
         exec/noexec:在此文件系統中是否容許運行程序文件;
         auto/noauto:是否容許使用mount -a方式掛載/etc/fstab中的文件系統;
         user/nouser:是否容許普通用戶掛載此文件系統;
         suid/nosuid:是否容許程序文件上的SUID和SGID特殊權限生效;
         relatime/norelatime:是否參考inode訪問時間來修改其修改時間和改變時間
         remount:不經卸載實現從新掛載,能夠應用新的掛載選項;
         acl:能夠使文件系統支持facl功能;
         defaults:默認選項:包括:rw, suid, dev, exec, auto, nouser, async and relatime
         loop:使用環回設備;將鏡像文件掛載到掛載點;
         defaults,ro,nosuid
       -B,--bind:將某個目錄綁定至另外一個目錄
         mout --bind|-B 源目錄 目標目錄


    查看掛載信息  mount df  /etc/mtab /proc/mounts

    卸載文件系統:
           umount mount_point|device               fuser能夠查看誰在使用                 -km 將正在使用的用戶kill掉

相關文章
相關標籤/搜索