磁盤存儲和文件系統


磁盤存儲

   設備類型

      1.塊設備

             以塊為單位進行存儲和讀取,相當於批量存和批量讀

      2.字符設備

            以一個字節或者一個字符為單位進行讀取和寫入.

       cp -a    /dev/sda      /data/sda

       mknod  /data/sda b 8 1   創建特殊類型的文件

      3.硬盤結構

        1.磁頭在盤片上進行從里到外-左右移動

        2.盤片進行高速旋轉

        3.磁道          圈和圈之間的空隙(類似於操場的跑道)                            每個磁道分成多少個扇區需要占用6個位來存儲,最大值是2^6=64

        4.扇區          每個扇區512字節   每個磁道被划分成多個扇區

        5.柱面          不同盤片之間的相同磁道組成一個柱面

     4.硬盤的使用

        1.分區

        2.創建文件系統(格式化)

        3.掛載 (把設備名和目錄名關聯起來)

        4.硬盤如果不進行格式化,那么往硬盤上存儲和讀取數據的時候只能以二進制(0和1)方式來進行,而不能以文件的方式進行訪問.

        5. hexdump -C  /dev/sda |  less  直接以二進制或者相關進制的方式來讀取硬盤上的數據.

    5.分區方式

       分區必須是在一個連續的空間

       4個主分區  或者        3個主分區+1個擴展分區+N個邏輯分區

      1.MBR分區

        1.   hexdump   -C     /dev/sda    -n      512       查看磁盤上前面的512個字節內容

        2.  dd  if=/dev/sda    of=/data/mbr_bak    bs=1   count=512              讀取二進制文件內容,每次讀取一個字節   總共讀取512個字節

        3.  dd  if=/dev/zero   of=/dev/sda             bs=1    count=512              用0設備讀取數據寫到其它二進制文件,每次寫入一個字節,總共寫512個字節

        4.  dd  if=/data/mbr_bak  of=/dev/sda      bs=1   count=512               恢復二進制文件內容

        5.  dd  if=/dev/zero   of=/dev/sda    bs=1   count=2  seek=510           把第511和512個字節清0

 

      2.GPT分區

       4個區域:EFI信息區(GPT頭)、分區表、GPT分區、備份區域

 

  6.管理分區

    列出塊設備    lsblk

    fdisk創建   MBR分區

    gdisk創建  GPT分區 

    parted高級分區操作 

    partprobe   同步內存和磁盤上的分區表信息   centos6上無效

    partx    -a     /dev/DEVICE     centos6 同步新增分區

    partx    -d     /dev/DEVICE     centos6  同步刪除分區

 

  7.分區表存儲在兩個地方,一個在內存,一個存儲在磁盤.

       fdisk 查看磁盤上的分區表信息
       lsblk 等其它命令查看的是內存上的分區表信息

    

文件系統

    操作系統中負責管理和存儲文件信息的軟件結 構稱為文件管理系統,簡稱文件系統

    如果沒有文件系統,那么我們只能以0和1二進制的方式來訪問磁盤上的內容不能以文件的方式來訪問磁盤數據.

    

   分布式文件系統

       把一個文件打散,均勻的存儲在不同的機器上.具有對文件備份和容錯的功能.

 

   日志型文件系統

     日志的功能就是記錄了用戶對數據的一切操作

     如果沒有日志系統,用戶把數據從磁盤調入內存進行修改后,如果在系統還沒開始從內存寫入磁盤的時候出現異常,那么只會丟到內存的修改,

     磁盤上的原數據並沒有被損壞。

    

 

     如果在系統已經開始從內存寫入磁盤的過程中出現異常,那么內存中的數據會丟失,同時磁盤上的原文件內容也會被損壞.

     日志系統會在硬盤上單獨開辟一塊空間進行日志存儲(journal)日志和文件是分離的,通過日志可以避免系統異常而導致損壞文件,保證系統的穩定性.

     

 

 

 虛擬文件系統

    封裝了各種不同類型文件系統的API給用戶統一調用使用戶無需關心底層系統,如用戶執行ls cp等命令,會首先把命令發送給虛擬文件系統

    然后由虛擬系統進行翻譯再發送給不同類型的底層文件系統來執行

buffer和cache

   1.   當用戶訪問一個文件的時候,磁盤會先把文件存入磁盤的緩存中,然后內存再從磁盤的緩存中讀取數據.

   2.   buffer是為了提高寫數據的性能     先把內存中需要寫入磁盤的數據存放到buffer中,然后再批量寫入磁盤.

   3.   cache是為了提高讀數據的性能    先把需要讀取的數據存放到cache中,下次讀取的時候直接從cache中讀取.

 

集群文件系統

    默認情況下,當多個服務器同時訪問同一塊磁盤上的同一個文件,就會造成這個文件的數據損壞.  集群文件系統就是為了解決這個問題

 

  塊組和簇(windows)的基本概念

       文件系統分配給文件的最小單位,一個文件再小也要占用的最少磁盤空間.

    


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM