Linux基礎介紹【第九篇】

来源:http://www.cnblogs.com/yinshoucheng-golden/archive/2017/01/07/6259923.html
-Advertisement-
Play Games

伺服器添加3塊磁碟的體繫結構 [root@oldboylinux test]# free -m total used free shared buffers cached Mem: 992 133 859 0 24 37 -/+ buffers/cache: 70 921 Swap: 511 0 5... ...


伺服器添加3塊磁碟的體繫結構

 

  1. [root@oldboylinux test]# free -m
  2.              total used free shared buffers cached
  3. Mem: 992 133 859 0 24 37
  4. -/+ buffers/cache: 70 921
  5. Swap: 511 0 511

註意:

1、linux系統的特性是將系統不用的物理記憶體緩存起來,因此,859不是系統的真是記憶體。

2、系統真正可用記憶體是921。

3、buffers為寫入緩衝區,sync將緩衝區數據寫入磁碟。

4、cache為讀取數據的緩衝區。

5、硬碟是機械的,無論是寫入還是讀取都太慢了,所以讀取和寫入都是用來緩存技術。

6、門戶架構網站都會採用緩存技術,來讓用戶寫入讀取儘可能不接觸磁碟。

磁碟的內部結構

磁碟的內部結構主要包括:碟片、磁頭、碟片主軸、控制電機、磁頭控制器、數據轉換器、介面、緩存等幾個部分。

磁頭組件及磁頭驅動裝置

1、磁頭組件。它由讀寫磁頭、傳動手臂、傳動軸三部分組成。

磁碟讀取數據的工作原理是利用特定的磁粒子的極性來記錄數據。磁頭在讀取數據時,將磁粒子的不同極性轉換成不同的電脈衝信號,再利用數據轉換器將這些原始信號變成電腦可以使用的數據,寫的操作正好與此相反。

2、磁頭驅動裝置。磁碟的尋道是靠移動磁頭,而移動磁頭則需要該裝置驅動才能實現(機械操作)。磁頭驅動裝置由電磁線圈電機、磁頭驅動小車、防震動裝置構成,高精度的輕型磁頭驅動裝置能夠對磁頭進行正確的驅動和定位,並能在很短的時間內精確定位系統指令指定的磁軌。

3、磁碟片。碟片是磁碟存儲數據的真正載體,磁碟碟片大多採用金屬薄膜材料(或有機玻璃材料),這種金屬薄膜較軟盤的不連續顆粒載體具有更高的存儲密度、高剩磁及高矯頑力等優點。

4、主軸組件。主軸組件包括如軸承和驅動電機等。磁碟主軸的轉數是衡量磁碟讀寫性能的重要參考之一。例:SAS15K,SATA10K。

5、前置控制電路。前置電路控制磁頭感應的信號、主軸電機調速、磁頭驅動和伺服定位等,由於磁頭讀取的信號微弱,將放大電路密封在腔體內可以減少外來信號的干擾,提高操作指令的準確性。

企業生產工作中磁碟的選型

當前伺服器市場,主流磁碟為SAS、SATA、SSD硬碟。

企業級SAS硬碟

企業里常見的SAS硬碟是15000轉/分。當前主流300G、600G、1T,從具體的業務需求及性價比考慮,工作中多用300-600G的SAS硬碟。用於提供生產線上的普通對外提供服務的業務伺服器。例如,生產線上的資料庫業務、存儲業務、圖片業務及相關高併發業務(web http、cache服務),總的來說,如果沒有特殊業務需求,SAS磁碟是生產環境首選的磁碟配置。

企業級SATA硬碟

企業級SATA硬碟7200-10000轉/分,常見的容量為1T、2T、4T和6T,優點是經濟實惠,容量大,從具體的業務需求及性價比考慮,工作中多用SATA磁碟做線下不提供服務的數據存儲或者併發業務服務不是很大的業務應用,比如站點程式及資料庫、圖片的線下備份等。特性容量性價比高,一般2T的SATA磁碟較佳。

磁碟選購要點:

1、線上業務用SAS磁碟。

2、線下的業務用SATA磁碟,磁帶庫。

3、線上高併發、小容量的業務用SSD磁碟。

4、根據數據的訪問熱度,智能分析分層存儲。

註意:千萬不能用SATA磁碟來做線上高併發服務的數據存儲或資料庫業務。

磁碟相關名詞解釋

英文

中文

disk

磁碟

head 

磁頭

sector 

扇區

track 

磁軌

cylinder 

柱面

units

單元塊(一個柱面的大小)

block

數據塊

inode 

索引節點

在磁碟不工作的時候,磁頭停靠在靠近主軸接觸碟片的錶面,即線速度最小的地方,這裡是一個不存放任何數據的特殊區域,稱為啟停區或著陸區(landing zone),啟停區以外就是數據區。

在磁碟的最外圈,離主軸最遠的磁軌稱為"0"磁軌,磁碟數據的存放就是從最外圈"0"磁軌開始的。"0"磁軌非常重要,系統的引導程式就在0柱面0磁軌1扇區的前446bytes。

磁軌

每個碟片有兩個面,都可記錄信息。碟片錶面以碟片中心為圓心,用於記錄數據的不同半徑的圓形磁化軌跡就稱為磁軌。

磁碟在格式化時被劃分成許多同心圓,這些同心圓的軌跡叫做磁軌(track)。磁軌由盤面從外向內依次從0開始順序編號。

柱面

所有的盤面上同一個半徑的磁軌的圓形軌跡從上到下依次會成一個圓柱體,就稱作柱面(cylinder),每個圓柱上的磁頭由上而下從"0"開始編號。

柱面數=一個盤面的磁軌數

扇區

盤面有圓心向四周畫直線,不同的磁軌被直線分成許多扇形(弧形)的區域,每個弧形的區域叫做扇區,每個扇區大小為512位元組。

操作系統是以扇區(sector)為單位將信息存儲在磁碟上,一般情況下,每個扇區的大小是512個位元組。一個扇區主要有兩個部分內容,存儲數據地點的標識符和存儲數據的數據段。

扇區的第一個主要部分是標識符。標識符就是扇區頭標,包括組成扇區三維地址的三個數字,扇區所在的磁頭(或盤面)、磁軌(或柱面號)以及扇區在磁軌上的位置即扇區號。投標中還包括一個欄位,其中有顯示扇區是否能可靠存儲數據,或者是否已發現某個故障因而不宜使用的標記。有些磁碟控制器在扇區頭標中還記錄有指示字,可在原扇區出錯時指引磁碟轉到替換扇區或磁軌。最後,扇區頭標以迴圈冗餘校驗(CRC)值作為結束,以供控制器檢驗扇區頭標的讀出情況,確保準備無誤。

扇區的第二個主要部分是存儲數據的數據段,可分為數據和保護數據的糾錯碼(ECC)。在初始準備期間,電腦用512個虛擬信息位元組(實際數據的存放地)和與這些虛擬信息位元組相應的ECC數字填入這個部分。

磁軌柱面扇區總結

磁碟最基本的組成部分是由堅硬的金屬材料製成的塗以磁性介質的碟片(有很多層),不同容量磁碟的碟片數不等。

1、一塊磁碟有2-14個碟片,每個碟片有兩個面,每個面對應一個讀寫磁頭,用磁頭號來區分盤面,即盤面數就是磁頭數,碟片數*2=磁頭數(盤面數)。

2、不同盤面的磁軌被劃分為多個扇形區域,每個區域就是一個扇區(sector)。

3、同一個盤面,以碟片中心為圓心,每個不同半徑的圓形軌跡就是一個磁軌(track)。

4、不同盤面相同半徑的磁軌組成一個圓柱面就是柱面(cylinder)。

5、一個柱麵包含多個磁軌(這些磁軌半徑相同),一個磁軌包含多個扇區。

6、數據信息記錄可表示為:某磁頭、某磁軌(柱面)、某扇區。

磁碟容量計算

  1. [root@oldboylinux ~]# fdisk -l
  2.  
  3. Disk /dev/sda: 8589 MB, 8589934592 bytes
  4. 255 heads, 63 sectors/track, 1044 cylinders
  5. Units = cylinders of 16065 * 512 = 8225280 bytes
  6. Sector size (logical/physical): 512 bytes / 512 bytes
  7. I/O size (minimum/optimal): 512 bytes / 512 bytes
  8. Disk identifier: 0x000ec58f
  9.  
  10.    Device Boot Start End Blocks Id System
  11. /dev/sda1 * 1 26 204800 83 Linux
  12. Partition 1 does not end on cylinder boundary.
  13. /dev/sda2 26 91 524288 82 Linux swap / Solaris
  14. Partition 2 does not end on cylinder boundary.
  15. /dev/sda3 91 1045 7658496 83 Linux

方法一:

磁碟容量=512*扇區數*磁軌數*磁頭數

每個磁軌的大小=512*扇區數

一個盤面的大小=512*扇區數*磁軌數

方法二:

磁碟容量=柱面數*柱面大小

柱面數=磁軌數

柱面大小=磁軌大小*磁頭數

磁軌大小=512*扇區數

  1. [root@oldboylinux ~]# fdisk -l /dev/sda1
  2.  
  3. Disk /dev/sda1: 209 MB, 209715200 bytes
  4. 255 heads, 63 sectors/track, 25 cylinders
  5. Units = cylinders of 16065 * 512 = 8225280 bytes
  6. Sector size (logical/physical): 512 bytes / 512 bytes
  7. I/O size (minimum/optimal): 512 bytes / 512 bytes
  8. Disk identifier: 0x00000000

磁頭數:255 heads,扇區數:63sectors/track,柱面數:25cylinders。

磁碟大小=512*扇區數*磁軌數*磁頭數=512*255*63*25=205632000 bytes

機械磁碟讀寫原理

1、磁碟是按照柱面為單位讀寫數據的,即先讀取同一個盤面的某一個磁軌,讀完之後,如果數據沒有讀完,磁頭也不會切換其他的磁軌,而是選擇切換磁頭,讀取下一個盤面的相同半徑的磁軌,直到所有盤面的相同半徑的磁軌讀取完成之後,如果數據還沒有讀寫完成,才會切換到其他不同半徑的磁軌,這個切換磁軌的過程稱為尋道。

2、不同磁頭間的切換是電子切換,而不同磁軌間的切換需要磁頭做徑向運動,這個徑向運動需要步進電機調節,這個動作是機械的切換。

磁碟分區

磁碟存儲邏輯結構

一個硬碟的存儲結構包括主引導記錄、分區表、分區結束標誌,及其它分區的引導信息及數據區信息。

主引導扇區在整個硬碟里是唯一的,也就是一個硬碟只能有一個,下麵是0磁軌1扇區的放大圖示。

16位元組分區表的內容

位元組數

說明

1bytes

state:分區狀態,0=未激活,0x80=激活。

1bytes

startHead:分區起始磁頭號

2bytes

startSC:分區起始扇區和柱面號,低位元組的低6位為扇區號,高2位為柱面號的第9,10位,高位元組為柱面號的低8位。

1bytes

type:分區類型,如0x0B=FAT32,0x83=linux等,00表示此項未用

1bytes

endHead:分區結束磁頭號

2bytes

endSC:分區結束扇區和柱面號

4bytes

Relative:線性定址方式下分區相對扇區地址(對於基本分區即為絕對地址)

4bytes

sectors:分區大小(總扇區數)

備份與恢復MBR

  1. [root@oldboylinux ~]# dd if=/dev/sda of=mbr.bin bs=512 count=1 #備份MBR
  2. 1+0 records in
  3. 1+0 records out
  4. 512 bytes (512 B) copied, 0.000217105 s, 2.4 MB/s
  5. [root@oldboylinux ~]# od -xa mbr.bin #查看MBR
  6. 0000000 48eb 1090 d08e 00bc b8b0 0000 d88e c08e
  7.           k H dle dle so P < nul 0 8 nul nul so X so @
  8. 0000020 befb 7c00 00bf b906 0200 a4f3 21ea 0006
  9.           { > nul | ? nul ack 9 nul stx s $ j ! ack nul
  10. 0000040 be00 07be 0438 0b75 c683 8110 fefe 7507
  11.         nul > > bel 8 eot u vt etx F dle soh ~ ~ bel u
  12. 0000060 ebf3 b416 b002 bb01 7c00 80b2 748a 0203
  13.           s k syn 4 stx 0 soh ; nul | 2 nul nl t etx stx
  14. 0000100 0080 8000 8176 0000 0800 90fa f690 80c2
  15.         nul nul nul nul v soh nul nul nul bs z dle dle v B nul
  16. 0000120 0275 80b2 59ea 007c 3100 8ec0 8ed8 bcd0
  17.           u stx 2 nul j Y | nul nul 1 @ so X so P <
  18. 0000140 2000 a0fb 7c40 ff3c 0274 c288 f652 80c2
  19.         nul sp { sp @ | < del t stx bs B R v B nul
  20. 0000160 5474 41b4 aabb cd55 5a13 7252 8149 55fb
  21.           t T 4 A ; * U M dc3 Z R r I soh { U
  22. 0000200 75aa a043 7c41 c084 0575 e183 7401 6637
  23.           * u C sp A | eot @ u enq etx a soh t 7 f
  24. 0000220 4c8b be10 7c05 44c6 01ff 8b66 441e c77c
  25.          vt L dle > enq | F D del soh f vt rs D | G
  26. 0000240 1004 c700 0244 0001 8966 085c 44c7 0006
  27.         eot dle nul G D stx soh nul f ht \ bs G D ack nul
  28. 0000260 6670 c031 4489 6604 4489 b40c cd42 7213
  29.           p f 1 @ ht D eot f ht D ff 4 B M dc3 r
  30. 0000300 bb05 7000 7deb 08b4 13cd 0a73 c2f6 0f80
  31.         enq ; nul p k } 4 bs M dc3 s nl v B nul si
  32. 0000320 f084 e900 008d 05be c67c ff44 6600 c031
  33.         eot p nul i cr nul > enq | F D del nul f 1 @
  34. 0000340 f088 6640 4489 3104 88d2 c1ca 02e2 e888
  35.          bs p @ f ht D eot 1 R bs J A b stx bs h
  36. 0000360 f488 8940 0844 c031 d088 e8c0 6602 0489
  37.          bs t @ ht D bs 1 @ bs P @ h stx f ht eot
  38. 0000400 a166 7c44 3166 66d2 34f7 5488 660a d231
  39.           f ! D | f 1 R f w 4 bs T nl f 1 R
  40. 0000420 f766 0474 5488 890b 0c44 443b 7d08 8a3c
  41.           f w t eot bs T vt ht D ff ; D bs } < nl
  42. 0000440 0d54 e2c0 8a06 0a4c c1fe d108 6c8a 5a0c
  43.           T cr @ b ack nl L nl ~ A bs Q nl l ff Z
  44. 0000460 748a bb0b 7000 c38e db31 01b8 cd02 7213
  45.          nl t vt ; nul p so C 1 [ 8 soh stx M dc3 r
  46. 0000500 8c2a 8ec3 4806 607c b91e 0100 db8e f631
  47.           * ff C so ack H | ` rs 9 nul soh so [ 1 v
  48. 0000520 ff31 f3fc 1fa5 ff61 4226 be7c 7d7f 40e8
  49.           1 del | s % us a del & B | > del } h @
  50. 0000540 eb00 be0e 7d84 38e8 eb00 be06 7d8e 30e8
  51.         nul k so > eot } h 8 nul k ack > so } h 0
  52. 0000560 be00 7d93 2ae8 eb00 47fe 5552 2042 4700
  53.         nul > dc3 } h * nul k ~ G R U B sp nul G
  54. 0000600 6f65 006d 6148 6472 4420 7369 006b 6552
  55.           e o m nul H a r d sp D i s k nul R e
  56. 0000620 6461 2000 7245 6f72 0072 01bb b400 cd0e
  57.           a d nul sp E r r o r nul ; soh nul 4 so M
  58. 0000640 ac10 003c f475 00c3 0000 0000 0000 0000
  59.         dle , < nul u t C nul nul nul nul nul nul nul nul nul
  60. 0000660 0000 0000 0000 0000 c58f 000e 0000 2080
  61.         nul nul nul nul nul nul nul nul si E so nul nul nul nul sp
  62. 0000700 0021 9f83 1906 0800 0000 4000 0006 9f00
  63.           ! nul etx us ack em nul bs nul nul nul @ ack nul nul us
  64. 0000720 1907 e482 5a0a 4800 0006 0000 0010 e400
  65.         bel em stx d nl Z nul H ack nul nul nul dle nul nul d
  66. 0000740 5a0b fe83 ffff 4800 0016 b800 00e9 0000
  67.          vt Z etx ~ del del nul H syn nul nul 8 i nul nul nul
  68. 0000760 0000 0000 0000 0000 0000 0000 0000 aa55
  69.         nul nul nul nul nul nul nul nul nul nul nul nul nul nul U *
  70. 0001000
  71. [root@oldboylinux ~]# dd if=mbr.bin of=/dev/sda bs=512 count=1 #恢復MBR

磁碟分區

1、磁碟分區的實質就是針對0磁頭0磁軌1扇區的前446位元組後面接下來的64bytes的分區表進行設置,即主要是劃分起始以及結束磁頭號,及扇區號和柱面號。

2、分區工具有fdisk(適合小於2T的磁碟分區),parted(適合大於2T的磁碟分區,可以對小於2T的磁碟分區),fdisk首選,只有大於2T時才會選parted。

3、一塊磁碟的分區表僅有64bytes大小,每個分區表要占用16位元組,因此一塊磁碟僅支持四個分區表信息,即主分區+擴展分區的總量不超過4個。

4、磁碟分區是按照柱面(cylinder)來劃分的。

5、擴展分區不能直接使用的,還需要在擴展分區的基礎上創建邏輯分區。

6、擴展分區有自己的分區表,因此擴展分區下麵的邏輯分區可以有多個。

磁碟在使用前一般需要進行分區,當然如果不分區直接格式化使用也可以,但這不是常見情況。磁碟分區有主分區、擴展分區和邏輯分區。一塊硬碟最多可以有4個分區表信息(磁碟本身限制),其中一個主分區的位置可以用一個擴展分區替換,且一塊硬碟只能有一個擴展分區(操作系統限制),在這個擴展分區中可以劃分多個邏輯分區(IDE磁碟分區編號大概5-63),SATA(編號5-15)。

一臺伺服器6塊600G的磁碟,raid5後,總大小3T,次數無法裝系統。解決辦法是做raid5後,不要直接重啟裝系統,而是再raid界面,繼續分一個小的虛擬磁碟vd 200G,用這個200G的虛擬磁碟裝系統,裝完系統後再把剩餘的2.8T通過parted分區。

主分區primary

主分區是磁碟上必須存在的分區,一般為磁碟的第一個分區。在一個磁碟上最多只能有4個主分區。

一個磁碟想分6個分區,主分區和擴展分區的數量:

1p+1e,2p+1e,3p+1e。

擴展分區Extended

擴展分區就像一個虛擬出來的一個小硬碟一樣,但是不同的是沒有MBR,而只有擴展分區表,而且這個擴展分區表示沒有64bytes的限制的,所以可以在擴展分區上劃分多個邏輯分區。一塊磁碟只能存放一個擴展分區,並且擴展分區不能直接存放數據,擴展分區受限於操作系統。

邏輯分區logical

不能在磁碟中單獨直接劃分邏輯分區(fdisk),邏輯分區必須存在於擴展分區內。在擴展分區內可以劃分多個邏輯分區,邏輯分區的編號從數字5開始。在這個擴展分區內可以劃分多個邏輯分區(IDE磁碟大概編號可以是5-63)。

磁碟分區註意事項

1、任意多個主分區,但要求1<=主分區數量<=4。

例如,一個硬碟可以分為4個主分區、3個主分區、2個主分區、1個主分區。

2、擴展分區可以和主分區組合,但要求2<=(主分區+擴展分區)<=4。

例如:3個主分區+1個擴展分區、2個主分區+1個擴展分區或1個主分區+1個擴展分區。當總分區的數量大於4個的時候,必須提前分一個擴展分區。

3、如果要分成四個磁碟分區的話,那麼分區方式可以為p+p+p+p或p+p+p+e。

註意:

由於MBR及磁碟分區表大小的限制,如果對磁碟分配了4p或3p+e後,即使磁碟還有剩餘未分的空間,那麼這部分空間也無法分區使用了(因為無分區可分了,分區表空間已經被沾滿)。因此,在做分區規劃時,如果業務需要,在分區之前就已經明確要超過4個分區,就可以選擇3p+e的分區方式,並且在最後一個擴展分區要將所有的剩餘空間都分配給這個擴展分區。當然,也可以採用1p+1e、2p+1e的分區方式,其實就是主分區不能分完,保留不分。

說明:

1、擴展分區不是一個真正的可用分區,建立完擴展分區後,還需要在擴展分區上面建立邏輯分區才可以使用。

2、對於主分區和邏輯分區在一本的數據存儲使用上是沒有區別的(對於大多數的數據存儲),在安裝操作系統時第一個分區要選主分區。

3、分區數字編號1-4留給主分區或擴展分區使用,邏輯分區編號只能從5開始,即使1-4分區號有剩餘,也不會分配給邏輯分區。

4、對硬碟分區,實際上就是修改硬碟的分區表(partition table),也就是說可以通過fdisk分區實際上就是在修改64位元組的分區表,分區對應的數據沒有關係。因此,理論上調整分區大小,不會刪除分區內的數據。

分區方案

方案一:集群結構中的某個節點,數據有多份或者不重要。

/boot 100MB linux引導程式

swap 物理記憶體的1.5倍,當記憶體大於等於8G時,給8G即可。

/ 剩餘硬碟大小

方法二:資料庫及存儲,有大量重要數據

/boot 100MB

/ 50-200G

swap 物理記憶體的1.5倍,當記憶體大於等於8G時,給8G即可。

/data 剩餘硬碟大小,放資料庫及存儲數據。

方案三:門戶級別或大網站

/boot 100MB

swap 物理記憶體的1.5倍,當記憶體大於等於8G時,給8G即可。

/ 50-200G

剩餘空間保留,不再進行分區,將來分給別的需要的部門。

硬碟分區的設備名

在linux系統中,是通過設備名來訪問設備的,設備名存放在"/dev"目錄中。

設備名稱的定義規則如下,其他的分區依次類推:

系統的第一塊IDE介面的硬碟:/dev/hda

系統的第二塊IDE介面的硬碟:/dev/hdb

系統的第一塊SCSI介面的硬碟:/dev/sda

系統的第二塊SCSI介面的硬碟:/dev/sdb

SATA、SAS都是sd開頭。

每個分區則使用磁碟名稱加對應的數字編號表示:

系統的第一塊IDE介面硬碟的第一個分區:/dev/hda1

系統的第一塊IDE介面硬碟的第五個分區:/dev/hda5

系統的第二塊SCSI介面硬碟的第一個分區:/dev/sdb1

系統的第二塊SCSI介面硬碟的第五個分區:/dev/sdb5

註意:

1、分區數字編號1-4留給主分區或擴展分區使用,邏輯分區編號只能從5開始。

2、IDE硬碟設備名均以/dev/hd開頭,不同硬碟編號依次是/dev/hda/、/dev/hdb、/dev/hdc…。

3、SCSI/SAS/SATA/USB介面硬碟的設備名均以/dev/sd開頭。不同硬碟編號依次是/dev/sda、/dev/sdb、/dev/sdc…。

4、特別註意,SAS/SATA為當前互聯網生產環境主流硬碟介面,SSD固態硬碟,由於是電子設備,性能很高,也逐漸被應用。

5、linux環境下沒有盤符的概念。要對磁碟設備進行操作,需要使用磁碟設備名,讀取磁碟設備內容,需要把創建的分區或邏輯捲上的文件系統掛載到指定的目錄上。

6、在linux系統上劃分了分區之後,還要在分區上創建文件系統。

文件系統類型

文件系統是對一個存儲設備上的數據和元數據進行組織的一種機制。文件系統是在一個磁碟(包括光碟、軟盤、閃盤及其它存儲設備)或分區上組織文件的方式和方法,常見文件系統如ext2、ext3、ext4、NTFS、FAT、FAT32等。文件系統是組織存儲文件或數據的方法,目的是易於查詢和存取數據。因此,如果磁碟上沒有文件系統也就無法存儲數據了,因此,在磁碟分區後能夠使用之前必須建立對應的文件系統才行。

文件系統是基於存儲設備的,比如硬碟或光碟,並且包含文件物理位置的維護,文件系統也可以說是虛擬數據或網路數據存儲的方法,比如NFS、MFS、GFS。目前unix、linux的文件系統有很多種實現,例如:UFS(基於BSD的unix文件系統)、ext2、ext3、ext4、zfs、xfs和reiserfs等。

註意:

1、文件系統是對一個存儲設備上的數據和元數據進行組織的一種機制。

2、分區必須格式化創建文件系統才能存放數據。

3、一個分區只能有一種文件系統。

4、linux下常見文件系統ext2、ext3、ext4、zfs、xfs(CentOS7)和reiserfs(單獨安裝)。windows下常見文件系統NTFS、FAT32。

文件系統的選擇

SAS、SATA銀盤文件系統選擇:

1、reiserfs:大量小文件業務首選reiserfs(100k以內)

2、xfs:有的門戶的數據塊mysql業務。

4、ext4:視頻下載、流媒體、資料庫、小文件業務。

5、ext2:沒有日誌,CDN網站加速服務。

常用應用:

CentOS5.x系統:預設ext3。

CentOS6.x系統:預設ext4。

CentOS7.x系統:預設xfs。

SSD文件系統選擇

ext4、reiserfs可以作為SSD文件系統,但未對SSD做優化,不能充分發揮SSD性能,並影響SSD使用時間。

btrfs對SSD作了優化,mount通過參數啟用。但btrfs仍處於試驗階段,生產環境謹慎使用。

jffs32、nilfs2、yaffs是常用的flash file system,在嵌入式環境廣泛應用,建議使用。

在linux中製作文件系統

用類似如下命令在linux中製作並優化reiserfs文件系統:

/sbin/mkreiserfs /dev/sda2

用類似如下命令在linux中製作xfs文件系統:

mkfs -t xfs -f /dev/sda2

註意:ext3fs其實是簡單的激活了記賬的ext2fs。當創建該文件系統時,對mke2fs使用-j選項:

/sbin/mke2fs -j /dev/sda2

查看目前支持的文件系統

  1. [root@oldboylinux ~]# ls /lib/modules/2.6.32-504.el6.x86_64/kernel/fs/
  2. autofs4 cramfs ext3 gfs2 mbcache.ko squashfs
  3. btrfs dlm ext4 jbd nfs ubifs
  4. cachefiles ecryptfs fat jbd2 nfs_common udf
  5. cifs exportfs fscache jffs2 nfsd xfs
  6. configfs ext2 fuse lockd nls

文件系統內部

  1. [root@oldboylinux ~]# dumpe2fs /dev/sda
  2. dumpe2fs 1.41.12 (17-May-2010)
  3. dumpe2fs: Bad magic number in super-block while trying to open /dev/sda
  4. Couldn't find valid filesystem superblock.
  5. [root@oldboylinux ~]# dumpe2fs /dev/sda1
  6. dumpe2fs 1.41.12 (17-May-2010)
  7. Filesystem volume name: <none>
  8. Last mounted on: /boot
  9. Filesystem UUID: 16664a83-1118-495f-af51-363c9f6fb6e0
  10. Filesystem magic number: 0xEF53
  11. Filesystem revision #: 1 (dynamic)
  12. Filesystem features: has_journal ext_attr resize_inode dir_index filetype needs_recovery extent flex_bg sparse_super huge_file uninit_bg dir_nlink extra_isize
  13. Filesystem flags: signed_directory_hash
  14. Default mount options: user_xattr acl
  15. Filesystem state: clean
  16. Errors behavior: Continue
  17. Filesystem OS type: Linux
  18. Inode count: 51200
  19. Block count: 204800
  20. Reserved block count: 10240
  21. Free blocks: 166642
  22. Free inodes: 51162
  23. First block: 1
  24. Block size: 1024
  25. Fragment size: 1024
  26. Reserved GDT blocks: 256
  27. Blocks per group: 8192
  28. Fragments per group: 8192
  29. Inodes per group: 2048
  30. Inode blocks per group: 256
  31. Flex block group size: 16
  32. Filesystem created: Fri Dec 16 22:02:58 2016
  33. Last mount time: Sat Jan 7 08:51:29 2017
  34. Last write time: Sat Jan 7 08:51:29 2017
  35. Mount count: 28
  36. Maximum mount count: -1
  37. Last checked: Fri Dec 16 22:02:58 2016
  38. Check interval: 0 (<none>)
  39. Lifetime writes: 36 MB
  40. Reserved blocks uid: 0 (user root)
  41. Reserved blocks gid: 0 (group root)
  42. First inode: 11
  43. Inode size: 128
  44. Journal inode: 8
  45. Default directory hash: half_md4
  46. Directory Hash Seed: 5c41ba8b-25c4-49f3-ab7e-e14d96dca193
  47. Journal backup: inode blocks
  48. Journal features: (none)
  49. Journal size: 4096k
  50. Journal length: 4096
  51. Journal sequence: 0x00000025
  52. Journal start: 0

超級塊:記錄文件系統的控制與管理信息(Group0以前的信息)。

1、block和inode的個數和大小,及其已用和未用的數量。

2、文件系統的載入時間、最近一次寫入數據時間、最近一次執行fsck進行磁碟檢查的時間等。

3、有效位:0已載入,1位載入。

組描述:記錄本塊組從何處開始

塊位示圖:使用位示圖記錄哪些塊已用哪些塊未用。

inode位示圖:使用位示圖記錄inode的使用情況。

inode區:各個inode組成的區域,每個inode都有一個唯一編號。

數據塊區:各個block組成的區域,用於存儲文件數據。

磁碟分區

添加一塊磁碟創建6個分區

1p+1e(5L):/dev/sdb1,/dev/sdb5,/dev/sdb6,/dev/sdb7,dev/sdb8,dev/deb9

分區:設置分區表

格式化:創建文件系統

查看磁碟信息

  1. [root@oldboylinux ~]# fdisk -l
  2.  
  3. Disk /dev/sda: 8589 MB, 8589934592 bytes
  4. 255 heads, 63 sectors/track, 1044 cylinders
  5. Units = cylinders of 16065 * 512 = 8225280 bytes
  6. Sector size (logical/physical): 512 bytes / 512 bytes
  7. I/O size (minimum/optimal): 512 bytes / 512 bytes
  8. Disk identifier: 0x000ec58f
  9.  
  10.    Device Boot Start End Blocks Id System
  11. /dev/sda1 * 1 26 204800 83 Linux
  12. Partition 1 does not end on cylinder boundary.
  13. /dev/sda2 26 91 524288 82 Linux swap / Solaris
  14. Partition 2 does not end on cylinder boundary.
  15. /dev/sda3 91 1045 7658496 83 Linux
  16.  
  17. Disk /dev/sdb: 1073 MB, 1073741824 bytes
  18. 255 heads, 63 sectors/track, 130 cylinders
  19. Units = cylinders of 16065 * 512 = 8225280 bytes
  20. Sector size (logical/physical): 512 bytes / 512 bytes
  21. I/O size (minimum/optimal): 512 bytes / 512 bytes
  22. Disk identifier: 0x00000000

 

  1. [root@oldboylinux ~]# fdisk -cu /dev/sdb
  2. Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
  3. Building a new DOS disklabel with disk identifier 0xf7a4dd89.
  4. Changes will remain in memory only, until you decide to write them.
  5. After that, of course, the previous content won't be recoverable.
  6.  
  7. Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)
  8.  
  9. Command (m for help): m #查看幫助
  10. Command action
  11.    a toggle a bootable flag
  12.    b edit bsd disklabel
  13.    c toggle the dos compatibility flag
  14.    d delete a partition #刪除創建的分區
  15.    l list known partition types #列出分區類型
  16.    m print this menu #查看幫助
  17.    n add a new partition #創建分區
  18.    o create a new empty DOS partition table
  19.    p print the partition table #查看分區
  20.    q quit without saving changes #退出,不保存
  21.    s create a new empty Sun disklabel
  22.    t change a partition's system id #更改分區的系統id
  23.    u change display/entry units
  24.    v verify the partition table
  25.    w write table to disk and exit #保存,寫入分區表
  26.    x extra functionality (experts only)
  27. Command (m for help):

 

  1. Command (m for help): p #查看分區情況
  2.  
  3. Disk /dev/sdb: 1073 MB, 1073741824 bytes
  4. 255 heads, 63 sectors/track, 130 cylinders, total 2097152 sectors
  5. Units = sectors of 1 * 512 = 512 bytes
  6. Sector size (logical/physical): 512 bytes / 512 bytes
  7. I/O size (minimum/optimal): 512 bytes / 512 bytes
  8. Disk identifier: 0xf7a4dd89
  9.  
  10.    Device Boot Start End Blocks Id System #沒有分區信息
  11.  
  12. Command (m for help): n #創建分區
  13. Command action
  14.    e extended
  15.    p primary partition (1-4)
  16. p #選擇分區類型
  17. Partition number (1-4): 1 #選擇分區標號
  18. First sector (2048-2097151, default 2048): #扇區
  19. Using default value 2048
  20. Last sector, +sectors or +size{K,M,G} (2048-2097151, default 2097151): +100M #指定大小
  21.  
  22. Command (m for help): p #查看分區情況
  23.  
  24. Disk /dev/sdb: 1073 MB, 1073741824 bytes
  25. 255 heads, 63 sectors/track, 130 cylinders, total 2097152 sectors
  26. Units = sectors of 1 * 512 = 512 bytes
  27. Sector size (logical/physical): 512 bytes / 512 bytes
  28. I/O size (minimum/optimal): 512 bytes / 512 bytes
  29. Disk identifier: 0xf7a4dd89
  30.  
  31.    Device Boot Start End Blocks Id System #目前的分區情況
  32. /dev/sdb1 2048 206847 102400 83 Linux
  33.  
  34. Command (m for help):

 

  1. Command (m for help): n #創建分區
  2. Command action
  3.    e extended
  4.    p primary partition (1-4)
  5. e #選擇分區類型
  6. Partition number (1-4): 2 #選擇分區標號
  7. First sector (206848-2097151, default 206848):
  8. Using default value 206848
  9. Last sector, +sectors or +size{K,M,G} (206848-2097151, default 2097151): #預設全部大小
  10. Using default value 2097151
  11.  
  12. Command (m for help): p #查看分區情況
  13.  
  14. Disk /dev/sdb: 1073 MB, 1073741824 bytes
  15. 255 heads, 63 sectors/track, 130 cylinders, total 2097152 sectors
  16. Units = sectors of 1 * 512 = 512 bytes
  17. Sector size (logical/physical): 512 bytes / 512 bytes
  18. I/O size (minimum/optimal): 512 bytes / 512 bytes
  19. Disk identifier: 0xf7a4dd89
  20.  
  21.    Device Boot Start End Blocks Id System
  22. /dev/sdb1 2048 206847 102400 83 Linux
  23. /dev/sdb2 206848 2097151 945152 5 Extended #擴展分區
  24.  
  25. Command (m for help):

 

  1. Command (m for help): n
  2. Command action
  3.    l logical (5 or over)
  4.    p primary partition (1-4)
  5. p
  6. Partition number (1-4): 3
  7. No free sectors available #沒有扇區
  8.  
  9. Command (m for help):

 

  1. Command (m for help): n
  2. Command action
  3.    l logical (5 or over)
  4.    p primary partition (1-4)
  5. l #邏輯分區
  6. First sector (208896-2097151, default 208896):
  7. Using default value 208896
  8. Last sector, +sectors or +size{K,M,G} (208896-2097151, default 2097151): +10M #指定大小
  9.  
  10. Command (m for help): p
  11.  
  12. Disk /dev/sdb: 1073 MB, 1073741824 bytes
  13. 255 heads, 63 sectors/track, 130 cylinders, total 2097152 sectors
  14. Units = sectors of 1 * 512 = 512 bytes
  15. Sector size (logical/physical): 512 bytes / 512 bytes
  16. I/O size (minimum/optimal): 512 bytes / 512 bytes
  17. Disk identifier: 0xf7a4dd89
  18.  
  19.    Device Boot Start End Blocks Id System
您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 本人接觸的優化主要分為三大類 黑體的為本模塊下的重點 安全優化 安全在生產場景中是第一位的 1.1 站點目錄許可權的優化 (修改許可權755 644 所屬用戶root,需要上傳的目錄給予nginx許可權) 1.2 防盜連接的優化(通過$http_referer實現判斷用戶來源,對非法的referer 返回 ...
  • SecureCRT下的文件傳輸協議有以下幾種:ASCII、Xmodem、Ymodem、Zmodem ASCII:這是最快的傳輸協議,但只能傳送文本文件。 Xmodem:這種古老的傳輸協議速度較慢,但由於使用了CRC錯誤偵測方法,傳輸的準確率可高達99.6%。 Ymodem:這是Xmodem的改良版, ...
  • keepalived管理的的ipvs功能支持對後端節點真實伺服器的健康檢查 一般常用的方式包括tcp_check 和http_get(更準確) tcp_check 原理就是對真實伺服器進行ip+埠的檢測實現的(我們可以用wget nmap telnet實現) 如果相應的埠開啟,則加入lvs的轉發 ...
  • 相關文章: ...
  • OpenSSH伺服器: ssh協議:提供安全的ssh環境用於遠程管理,預設埠:22; 服務名稱:sshd openssh-server包的安裝文件: 使用ssh客戶端程式: 遠程複製 : 從遠程主機複製過來:scp 用戶名@主機名:/目標文件夾/文件名 目的文件夾 使用ssh客戶端的常用程式:pu ...
  • 本來想移植DM9000網卡的驅動,無奈硬體出了點問題,通過杜邦線鏈接開發板和DM9000網卡模塊,系統上電,還沒載入網卡驅動就直接崩潰了,找不到原因。。。剛好手上有一個enc28j60的網卡模塊,於是就著手移植enc28j60的驅動。 其實移植enc28j60的驅動也十分簡單,網上有現成的,只需要分 ...
  • 使用橋接的鏈接方式,centos6.4配置靜態ip,能ping通網關,但ping 外網時出現 "network is unreachable" 如:ping www.baidu.com。 原來是路由配置問題。嘗試直接修改系統文件/etc/sysconfig/network-scripts/route ...
  • 安裝 squid yum install squid -y 備份squid.conf cp squid.conf squid.conf-list vi squid.conf 輸入: acl denyWeb dstdomain "/etc/squid/denyWeb.list" http_access ...
一周排行
    -Advertisement-
    Play Games
  • 前言 本文介紹一款使用 C# 與 WPF 開發的音頻播放器,其界面簡潔大方,操作體驗流暢。該播放器支持多種音頻格式(如 MP4、WMA、OGG、FLAC 等),並具備標記、實時歌詞顯示等功能。 另外,還支持換膚及多語言(中英文)切換。核心音頻處理採用 FFmpeg 組件,獲得了廣泛認可,目前 Git ...
  • OAuth2.0授權驗證-gitee授權碼模式 本文主要介紹如何筆者自己是如何使用gitee提供的OAuth2.0協議完成授權驗證並登錄到自己的系統,完整模式如圖 1、創建應用 打開gitee個人中心->第三方應用->創建應用 創建應用後在我的應用界面,查看已創建應用的Client ID和Clien ...
  • 解決了這個問題:《winForm下,fastReport.net 從.net framework 升級到.net5遇到的錯誤“Operation is not supported on this platform.”》 本文內容轉載自:https://www.fcnsoft.com/Home/Sho ...
  • 國內文章 WPF 從裸 Win 32 的 WM_Pointer 消息獲取觸摸點繪製筆跡 https://www.cnblogs.com/lindexi/p/18390983 本文將告訴大家如何在 WPF 裡面,接收裸 Win 32 的 WM_Pointer 消息,從消息裡面獲取觸摸點信息,使用觸摸點 ...
  • 前言 給大家推薦一個專為新零售快消行業打造了一套高效的進銷存管理系統。 系統不僅具備強大的庫存管理功能,還集成了高性能的輕量級 POS 解決方案,確保頁面載入速度極快,提供良好的用戶體驗。 項目介紹 Dorisoy.POS 是一款基於 .NET 7 和 Angular 4 開發的新零售快消進銷存管理 ...
  • ABP CLI常用的代碼分享 一、確保環境配置正確 安裝.NET CLI: ABP CLI是基於.NET Core或.NET 5/6/7等更高版本構建的,因此首先需要在你的開發環境中安裝.NET CLI。這可以通過訪問Microsoft官網下載並安裝相應版本的.NET SDK來實現。 安裝ABP ...
  • 問題 問題是這樣的:第三方的webapi,需要先調用登陸介面獲取Cookie,訪問其它介面時攜帶Cookie信息。 但使用HttpClient類調用登陸介面,返回的Headers中沒有找到Cookie信息。 分析 首先,使用Postman測試該登陸介面,正常返回Cookie信息,說明是HttpCli ...
  • 國內文章 關於.NET在中國為什麼工資低的分析 https://www.cnblogs.com/thinkingmore/p/18406244 .NET在中國開發者的薪資偏低,主要因市場需求、技術棧選擇和企業文化等因素所致。歷史上,.NET曾因微軟的閉源策略發展受限,儘管後來推出了跨平臺的.NET ...
  • 在WPF開發應用中,動畫不僅可以引起用戶的註意與興趣,而且還使軟體更加便於使用。前面幾篇文章講解了畫筆(Brush),形狀(Shape),幾何圖形(Geometry),變換(Transform)等相關內容,今天繼續講解動畫相關內容和知識點,僅供學習分享使用,如有不足之處,還請指正。 ...
  • 什麼是委托? 委托可以說是把一個方法代入另一個方法執行,相當於指向函數的指針;事件就相當於保存委托的數組; 1.實例化委托的方式: 方式1:通過new創建實例: public delegate void ShowDelegate(); 或者 public delegate string ShowDe ...