linux磁盤管理

硬盤接口類型:

        IDE:并口,133M/s;100個IO/s
        SCSI:并口,UltraSCSI320,320M/s UltraSCSI640 640M/s 150-200IO/s
        SATA:串口,6Gbps/8=750M/s 100IO/s
        SAS:串口,6Gpbs
        USB:串口 480M/s
        注意:上述速度指的是接口定義的最快速度,但實際傳輸可能到不到上面所述的速度。
    lops:每秒能完成多少個IO,每個IO就是一次存取操作,機械硬盤 400IO/s。
    
設備類型:

        塊設備:隨機訪問,數據交換單位是“塊”
        字符設備:線性訪問,數據交換單位是“字符”
           設備文件:存儲數據指針的空間當中存儲的是設備號,位圖索引,關聯至一個設備驅動程序,進而能夠跟與之對應硬件設備進行通信。

           設備號:
                major:主設備號,區分設備類型,用于標明設備所需要的驅動程序           
                minor:次設備號,區分同種類型下的不同設備,是特定設備的訪問入口

           引用設備的方式:
                設備文件名
                卷標
                UUID:可以唯一標識一個設備

磁盤的基礎知識:

        盤面最外側是0磁道,依次往里遞增(0磁道存放MBR)
        扇區固定大小512個字節
        磁道一圈最多63個扇區
        磁道最多1024個
        磁頭數等同于盤面數最多256個
        柱面的大小=扇區大小*扇區數*盤面數=512字節*63個*256個=7.875M
        磁盤的三維:CHS —cylinder 柱面  head 磁頭   secotr 扇區

磁盤分區:
        兩種分區方式:

                MBR: Master Boot Record, 使用32位表示扇區,分區不能超過2T數, 分區不超過2T,cenots6 按照柱面分區,cenots7按照扇區分區,0磁道0扇區主引導分區MBR 512字節,446引導程序,64分區表,16B引導一個分區,最多4個分區,2bytes,55AA,用于標識硬盤是否分區,且最多4個主分區或3個主分區+1擴展(N個邏輯分區)。
                注意:MBR位于0磁道0扇區的主活動分區,每塊邏輯分區都有自己的EBR,當我們備份主分區的MBR時:dd if=/dev/sda of=/testdir/mbrbak bs=1 count=512 , 要求還原的硬盤與備份的硬盤大小一致,此時恢復只能恢復主分區的,不能恢復邏輯分區。

                        dd if=/dev/zero of=/dev/sdd bs=1 count=2 skip=510 seek=510 覆蓋55AA
                        hexdump -C -n 512 /dev/sda     以二進制形式查看/sda設備的前512個字節
                                 -v 顯示所有信息
                                 -C 以二進制形式顯示
                        有一個大與2K的二進制文件fileA。 現在想從第64個字節位置開始讀取,需要讀取的大小是128Byts。又有fileB, 想把上面讀取到的128Bytes寫到第32個字節開始的位置,替換128Bytes,請問如何實現?
                            dd if=fileA of=fileB bs=1 count=128 skip=63 seek=31 conv=notrunc
                GPT:  Globals Unique Identifiers,partition  table 支持128個分區,使用64位,支持8Z(512Byte/block ) 64Z (4096Byte/block)
                        使用128位UUID 表示磁盤和分區 GPT分區表自動備份在頭和尾兩份,并有CRC校驗位
                        UEFI (統一擴展固件接口)硬件支持GPT,使操作系統啟動
                    
       磁盤的組成部分:

       1、MBR:主引導分區512bytes,446引導程序,64分區表,16B引導一個分區,最多4個分區,2bytes,55AA,用于標識硬盤是否分區。
       2、super block: 存放塊組信息,記錄的是inode和block 應該有多少個block,已用多少,剩余多少。
       3、inode:有文件存儲在block的時候,在inode的位置都會有該文件相關的記錄,記錄該文件的屬性信息,user、group等,也會指明該文件存放在那個block里,相當與目錄,內容存在block中。
       4、block:存儲內容的,每一個block成為一個塊,默認是4k,block是真正存儲文件的地方,當一個block存儲數據后,如果有剩余也不 能存儲其他文件了,文件1k,block4k,該block也不能用了,劃分分區的時候可以指定block的大小,如存儲12k的文件,會占用3個 block,如果說一個block1k那么會占用12個block,那么讀取的block會比價多,尋到時間會比較長,效率比較低。  

        Block group的組成部分:

        第一部分:存儲的是super block
        第二部分:文件系統的描述信息,比如每個block group是從第幾個開始到第幾個block結束。
        第三部分:塊位圖/塊對照表 那些block沒有被使用,哪些被使用了
        第四部分:inode位圖 哪些inode被使用,哪些剩余
        第五部分:inode表 每記錄一個文件都會在inode寫相應的條目,保存文件的屬性信息,每記錄將消耗128B的空間,每次指向一個block塊將消耗4B,一共可指向32個塊。

 
磁盤管理相關命令:


    列出設備:
            lsblk
            cat  /proc/partitions
            ls /dev/sd*
            注意:上述三種方法列出內存中的設備信息,可能會存在不同步的問題。
           系統添加硬盤后讓其識別的方法:
                            echo "- – -" > /sys/class/scsi_host/host2/scan  centos6 上添加硬盤之后,讓系統識別
                            echo "- – -" > /sys/class/scsi_host/host0/scan  centos7       

   
      創建、編輯分區:    

              fdisk:
                1、查看磁盤的分區信息
                        fdisk -l device:查看指定磁盤的設備的分區信息
                        fdisk -lcu 以扇區的形式顯示  centos6 默認是以柱面單位顯示分區的

                2、管理分區
                        fdisk提供了一個交互式接口來管理分區,它有許多子命令,分別用于不同的管理功能,所有操作都在內存中完整,沒有直接同步到磁盤,只有當執行保存w命令時才同步到磁盤。
                        常用命令:
                           d: 刪除
                           n: 新建
                           p: 列出
                           t: 調整分區ID
                           l: 列出內核支持的分區ID
                           w: 保存退出
                           q: 不保存退出         
                    注意:在已有的分區或者已經創建掛載的分區上面創建新的分區,內核可能無法立即識別,需要重新通知內核識別。

             parted:
                parted的操作都是實時生效的,小心使用
                用法: parted [選項]… [設備 [命令 [參數]…]…]
                        parted /dev/sdb mklabel gpt|msdos    將磁盤類型轉換為gpt 或msdos形式
                        parted /dev/sdb print    打印當前分區
                        parted /dev/sdb mkpart primary 1 200 (默認M)    劃分一個起始位置為1,大小為200M的分區
                        parted /dev/sdb rm 1    刪除第一個分區

      通知內核重新識別新的分區:

           新增分區用
                    partx -a -n M:N /dev/DEVICE
                    kpartx -a /dev/DEVICE -f: force
            刪除分區用
                    partx -d -n M:N /dev/DEVICE
                        centos6: –nr N-M
            CentOS 5, 7: 使用partprobe(此命令在centos6中不起作用)
                        partprobe [/dev/DEVICE]

文件系統:

    文件系統類型:

        Linux文件系統: : ext2(Extended file system), ext3,ext4, xfs( SGI) , btrfs( Oracle) , reiserfs, jfs(AIX) , swap
        光盤: iso9660
        Windows: fat32, ntfs
        網絡文件系統: NFS, CIFS
        集群文件系統: GFS2, OCFS2( oracle)
        分布式文件系統: ceph, moosefs, mogilefs, glusterfs,Lustre
        RAW:未經處理或者未經格式化產生的文件系統

    文件系統分類:

        根據其是否支持"journal"功能:
                日志型文件系統: ext3, ext4, xfs, …
                非日志型文件系統: ext2, vfat
        文件系統的組成部分:
                內核中的模塊: ext4, xfs, vfat
                用戶空間的管理工具: mkfs.ext4, mkfs.xfs,mkfs.vfat
        Linux的虛擬文件系統: VFS
        查前支持的文件系統: cat /proc/filesystems

    文件系統的管理工具:

        創建文件系統的工具:mkfs mke2fs
        檢測及修復文件系統的工具:fsck e2fsck(ext文件系統專用)
        查看文件系統的屬性的工具:tune2fs dumpe2fs
        查看或設定卷標的工具:e2label
        查看文件系統的UUID和文件系統類型、卷標:blkid
        查看磁盤的使用情況:df
        查看目錄的大?。篸u
        查找分區:findfs
        查看當前系統上掛載的設備:mount | cat /etc/mtab | cat /proc/mounts
        查看掛載點被哪個程序或進程所占用:lsof | fuser -v
        終止所有正在被訪問的掛載點進程:fuser -km

        mke2fs:
            mke2fs [option] device
                -t{ext2|ext3|ext4}:指明要創建的文件系統類型。
                -L LABEL:指明卷標
                -b{1024|2048|4096}:指明塊大小
                -j:創建有日志功能的文件系統ext3
                       mke2fs -j = mke2fs -t ext3 = mkfs.ext3
                -i#:bytes-per-inode,每多少個字節一個inode,指明inode與字節的比例,此大小不應該小于block的大小。
                -I :一個inode記錄大小128—4096
                -N#:直接指明要給此文件系統創建的inode數量
                -m#:指定預留空間的百分比,默認5%
                -O FEATURE[,…]:啟用指定特性
                -O ^FEATURE:關閉指定特性

        e2label:
            e2label device:查看卷標
            e2label device LABEL 設定卷標
    
        findfs:
            findfs [options] LABEL=labelname
            findfs [options] UUID=uuid

        tune2fs:
                -l device:查看超級快的屬性信息
                -L LABEL:指明卷標
                -m#:指定預留給管理員的空間百分比
                -O[^]feather:開啟或關閉某中特性
                         tune2fs -O ^has_journal /dev/sda3 關閉日志功能
                         tune2fs -O has_journal /dev/sda3 開啟日志功能
                -o[^]mount_options:開啟或關閉某種掛載選項
                        tune2fs -o acl /dev/sda3 默認掛載到acl
                 -j: 將ext2升級為ext3
                 -U UUID: 修改UUID號

        dumpe2fs命令:顯示ext文件系統的屬性信息(超級快和塊組的信息)
                dumpe2fs [-h] /dev/sda5

        e2fsck:
                -y:對所有問題自動回答為yes
                -f:及時文件系統處于clean狀態,也要強制進程檢測

        fsck:
                -t:指明文件系統類型
                -a:無需交互自動修復錯誤
                -r:交互式修復
    因進程意外終止,或者系統崩潰等原因導致正常操作終止,可能造成文件系統損壞,此時應該檢測并修復文件系統,建議離線進行,不要掛載。

        blkid:
                -L LABEL:根據LABEL定位設備
                -U UUID:根據UUID定位設備

        df:
                -T:顯示系統類型
                -l:顯示本地文件的信息
                -h:human-readable
                -i:顯示inode的狀態而非block

        du:
                du -sh /etc 查看/etc/目錄的大小

        swap交換分區:
                創建交換分區:mkswap
                 -L LABEL:指明卷標
                啟用/禁用:swapon/swapoff

掛載mount        

根文件系統之外的文件系統要想能夠被訪問,都必須通過“關聯”至根文件系統上面的某個目錄來實現,此關聯操作即為掛載,目錄即為掛載點。

    掛載點:用于作為另外一個文件系統的訪問入口
        1、事先存在,
        2、應該未被使用或不被其他進程使用到的目錄
        3、掛載之后原有的文件將會被隱藏

    mount的常用選項:
        -r:只讀掛載,光驅
                mount -r /dev/cdrom /media/media
        -w:讀寫掛載
        -n:默認情況下,設備掛載或卸載的操作會同步更新至/etc/mtab中,-n禁用此特性
        -t vfstype:指明要掛載的設備上文件系統的類型,可省略,此時mount會自動通過blkid自動識別文件系統的類型、
        -a:自動掛載所有/etc/fstab文件中支持自動掛載的設備
        -L LABEL:掛載時以卷標的方式指明設備
                mount -L LABEL /media
        -U UUID:掛載以UUID的方式指明設備
                mount -U UUID dir
        -B, –bind: 綁定目錄到另一個目錄上

        -o option選項:
                sync/async:同步(內存更改時,同時寫磁盤)/異步操作
                atime/noatime:文件或目錄被訪問的時候是否更改其時間戳
                diratime/nodirname:目錄被訪問的時候是否更改時間戳
                remount:重新掛載
                acl:支持使用facl功能
                ro:只讀
                rw:讀寫
                uto/noauto: 是否能夠被mount -a選項自動掛載
                dev/nodev:此設備上面是否允許創建設備文件
                exec/noexec:是否允許運行此設備上面的程序文件
                user/nouser:是否允許普通用戶掛載此文件系統
                suid/nosuid:是否允許程序文件上面的suid生效
                default:rw nosuid exec auto nouser async reatime

        查看掛載情況:
                mount
                cat /etc/mtab
                cat /proc/mounts  (最全)

        查看正在訪問指定文件系統的進程:
                lsof MOUNT_POINT
                fuser -v MOUNT_POINT

        終止所有在正訪問指定的文件系統的進程:
                fuser -km MOUNT_POINT

        取消掛載:
                umount DEVICE
                umount MOUNT_POINT
                
            補充:centos7 添加misc 文件夾的方法

                            yum install autofs -y
                            systemctl start autofs

 

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

(0)
NarutoNaruto
上一篇 2016-08-29
下一篇 2016-08-29

相關推薦

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

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

    Linux干貨 2016-08-24
  • linux的各種小命令和目錄

    linux的各種小命令   pwd 顯示當前工作的目錄   w who whoami 顯示當前用戶及已建立的ssh鏈接   useradd 新建一個普通用戶   passwd 修改用戶的密碼   # 代表當前工作的是root 超級用戶   $ 代表當前工作的普通用戶 &…

    Linux干貨 2017-03-27
  • 搭建yum倉庫

    搭建yum倉庫 背景: 在學習完如何搭建yum倉庫后,覺得搭建yum倉庫很有意義,將自己學習中的感悟和理解記錄下來,以備日后復習。 介紹: yum:全稱是Yellow dog Updater, Modified。它是一個在Fedora和RedHat以及CentOS中的Shell前端軟件包管理器?;赗PM包管理,能夠從指定的服務器自動下載RPM包并且安裝,可…

    2017-08-05
  • 招聘Linux運維工程師

    崗位職責: 公司集群硬件的日常維護及管理 負責公司內網的服務器安裝,部署和維護 監控服務器狀態,發現問題并及時維護 負責產品發布上線 承擔mangoDB的日常巡檢 集群數據服務器的備份 編寫服務器維護腳本,減少工作量,提高工作效率 任職要求: 1年以上Linux系統管理經驗,精通Linux的管理和維護 能夠熟練編排查運維過程中出現的服務故障,系統故障,網絡故…

    Linux干貨 2017-12-04
  • M20 – 1- 第三周博客(1):Linux用戶、組

    Linux是個多用戶多任務的分時操作系統,因此要使用系統資源的用戶都必須先向系統管理員申請一個賬號,然后以這個賬號的身份進入系統。用戶的賬號一方面能幫助系統管理員對使用系統的用戶進行跟蹤,并控制他們對系統資源的訪問與限制,并為用戶提供安全性保護。每個用戶賬號都擁有一個惟一的用戶名(UID)和用戶口令(PASSWD)。用戶在登錄時鍵入正確的用戶名和口令后,才能…

    Linux干貨 2016-08-04
  • Linux基礎之LVM

    一.LVM介紹 LVM(Logic Volume Management)邏輯卷管理器,其基本原理就是將多個磁盤的分區在邏輯上進行組合,使之成為一個大容量的磁盤進行使用,可以實現動態的分配存儲空間。 LVM基本模型以及基本術語,如下圖所示: PV:物理卷,從邏輯上與磁盤分區具有同樣功能的設備 VG:卷組,由一個或多個物理卷組成 LV:邏輯卷,具有邏輯邊界的存儲…

    Linux干貨 2016-11-09

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-08-29 11:57

    文章結構層次清晰,內容完整,建議多些實際操作,只有理論和實踐結合起來,才能更好的的發現問題,并將其總結成經驗。

欧美性久久久久