服務器添加3塊磁盤的體系結構
注意:
1、linux系統的特性是將系統不用的物理內存緩存起來,因此,859不是系統的真是內存。
2、系統真正可用內存是921。
3、buffers為寫入緩沖區,sync將緩沖區數據寫入磁盤。
4、cache為讀取數據的緩沖區。
5、硬盤是機械的,無論是寫入還是讀取都太慢了,所以讀取和寫入都是用來緩存技術。
6、門戶架構網站都會采用緩存技術,來讓用戶寫入讀取盡可能不接觸磁盤。
磁盤的內部結構主要包括:盤片、磁頭、盤片主軸、控制電機、磁頭控制器、數據轉換器、接口、緩存等幾個部分。
1、磁頭組件。它由讀寫磁頭、傳動手臂、傳動軸三部分組成。
磁盤讀取數據的工作原理是利用特定的磁粒子的極性來記錄數據。磁頭在讀取數據時,將磁粒子的不同極性轉換成不同的電脈沖信號,再利用數據轉換器將這些原始信號變成電腦可以使用的數據,寫的操作正好與此相反。
2、磁頭驅動裝置。磁盤的尋道是靠移動磁頭,而移動磁頭則需要該裝置驅動才能實現(機械操作)。磁頭驅動裝置由電磁線圈電機、磁頭驅動小車、防震動裝置構成,高精度的輕型磁頭驅動裝置能夠對磁頭進行正確的驅動和定位,並能在很短的時間內精確定位系統指令指定的磁道。
3、磁盤片。盤片是磁盤存儲數據的真正載體,磁盤盤片大多采用金屬薄膜材料(或有機玻璃材料),這種金屬薄膜較軟盤的不連續顆粒載體具有更高的存儲密度、高剩磁及高矯頑力等優點。
4、主軸組件。主軸組件包括如軸承和驅動電機等。磁盤主軸的轉數是衡量磁盤讀寫性能的重要參考之一。例:SAS15K,SATA10K。
5、前置控制電路。前置電路控制磁頭感應的信號、主軸電機調速、磁頭驅動和伺服定位等,由於磁頭讀取的信號微弱,將放大電路密封在腔體內可以減少外來信號的干擾,提高操作指令的准確性。
當前服務器市場,主流磁盤為SAS、SATA、SSD硬盤。
企業裡常見的SAS硬盤是15000轉/分。當前主流300G、600G、1T,從具體的業務需求及性價比考慮,工作中多用300-600G的SAS硬盤。用於提供生產線上的普通對外提供服務的業務服務器。例如,生產線上的數據庫業務、存儲業務、圖片業務及相關高並發業務(web http、cache服務),總的來說,如果沒有特殊業務需求,SAS磁盤是生產環境首選的磁盤配置。
企業級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、數據信息記錄可表示為:某磁頭、某磁道(柱面)、某扇區。
方法一:
磁盤容量=512*扇區數*磁道數*磁頭數
每個磁道的大小=512*扇區數
一個盤面的大小=512*扇區數*磁道數
方法二:
磁盤容量=柱面數*柱面大小
柱面數=磁道數
柱面大小=磁道大小*磁頭數
磁道大小=512*扇區數
磁頭數: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、磁盤分區的實質就是針對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分區。
主分區是磁盤上必須存在的分區,一般為磁盤的第一個分區。在一個磁盤上最多只能有4個主分區。
一個磁盤想分6個分區,主分區和擴展分區的數量:
1p+1e,2p+1e,3p+1e。
擴展分區就像一個虛擬出來的一個小硬盤一樣,但是不同的是沒有MBR,而只有擴展分區表,而且這個擴展分區表示沒有64bytes的限制的,所以可以在擴展分區上劃分多個邏輯分區。一塊磁盤只能存放一個擴展分區,並且擴展分區不能直接存放數據,擴展分區受限於操作系統。
不能在磁盤中單獨直接劃分邏輯分區(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
查看目前支持的文件系統
超級塊:記錄文件系統的控制與管理信息(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
分區:設置分區表
格式化:創建文件系統
查看磁盤信息
最後分區情況
列出類型
通知linux分區表的變化(否則需要重啟系統才能看到變化)
查看結果
磁盤與目錄的容量:
df:列出文件系統的整體磁盤使用量。
du:評估文件系統的磁盤使用量(常用於評估目錄所占容量)。
1、將容量結果以易讀的容量格式顯示出來:df -h。
2、將/etc下面的可用的磁盤容量以易讀的容量格式顯示:df -h /etc。
3、將目前各個分區當做可用的inode數量列出:df -ih。
4、檢查根目錄下面每個目錄所占用的容量:du -sm/*。
連接文件:ln
1、hard link(硬鏈接實際鏈接):只是在某個目錄下新建一條文件名鏈接到某inode號碼的關聯記錄而已。
2、symbolic link(符號鏈接,快捷方式):再創建一個獨立的文件,而這個文件會讓數據的讀取指向它鏈接的那個文件夾的文件名。
3、將/etc/passwd復制到/tmp下面,並且查看inode與block
磁盤格式化:mkfs -t ext3 /dev/sda6
磁盤檢查:fsck、badblocks
fsck -C -f -t ext3 /dev/sda6,卸載狀態檢查。
badblocks -sv /dev/sda6
磁盤掛載與卸載
1、掛載ext2、ext3文件系統
mount /dev/sda6 /mnt
df –h
2、掛載cd或dvd光盤
mkdir /media/cdrom
mount -t iso9660 /dev/cdrom /media/cdrom #-t iso9660這個是光盤的格式
mount /dev/cdrom /media/cdrom #系統自己去測試掛載
df
3、格式化與掛載軟盤
mkfs -t vfat /dev/fd0
mkdir /media/floppy
mount -t fat /dev/fd0 /media/floppy
df
4、掛載U盤
mkdir /tmp/flash
mount -t vfat -o iocharset=cp950 /dev/sda1 /tmp/flash
df
5、文件卸載umount
umount /dev/sda6
umount /media/cdrom
umount /tmp/flash
umount /dev/fd0
umount /tmp/home
強制卸載:umount –lf 掛載點
強制卸載nfs案例:
umount:/mnt:device is busy解決辦法
當無法卸載nfs掛載目錄時,原因及解決辦法:
1、可能當前目錄就是掛載的nfs目錄(/mnt)
解決辦法:退出掛載的目錄/mnt,再執行卸載。
2、比如nfs server掛了,nfs client會出問題(df -h窗會死掉口)
最好的強制卸載方法umount -lf /mnt。
http://xxxxxx/Linuxjc/1185785.html TechArticle