Linux磁碟設備基礎

来源:https://www.cnblogs.com/zhangwduoduoj/archive/2019/05/08/10832547.html
-Advertisement-
Play Games

free -m 查看系統記憶體 [root@zhang /]# free -m total used free shared buffers cached Mem: 1004 226 777 0 29 150 -/+ buffers/cache: 46 957 Swap: 199 0 199 linu ...


free -m 查看系統記憶體

[root@zhang /]# free -m

             total       used       free     shared    buffers     cached

Mem:          1004        226        777          0         29        150

-/+ buffers/cache:         46        957

Swap:          199          0        199

linux系統的特性是將系統不用的物理記憶體緩存起來,所以777不是系統真正的緩存,957才是

buffers是寫入緩衝區,sync命令是將buffers緩衝區數據寫入磁碟

cache為讀出緩存,磁碟里的數據讀出來存到cache里

 

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

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

磁碟讀取數據的工作原理是利用特定的磁粒子的極性來記錄數據。

磁碟片:碟片是磁碟存儲數據的真正載體

磁碟介面是磁碟與主機系統之間的連接部件。

 

磁碟類型:

IDE是早期的家用,被淘汰了

SCSI 早期的伺服器領域  好用但是昂貴

SATA流行的家用領域  --SATA口磁碟又叫做串口磁碟  支持熱插拔

SAS 流行的伺服器領域   --結合了SATA和SCSI的優點而誕生的

FC—光纖通道   高端伺服器

 

硬碟選擇的小結:

1.主軸轉數

2.磁碟介面和類型          

 

固態磁碟普遍使用SATA介面

固態磁碟的優點:

啟動快  讀取延時小  碎片不影響讀取  寫入速度快  無噪音 防震

缺點:貴,容量小,讀寫壽命短,數據恢復難

 

1)企業級SAS應用

企業里最常見的工業級SAS硬碟是15000轉/分 ---用於提供生產線上的普通對外提供服務的對外伺服器。例如:生產線上的資料庫業務,存儲業務,圖片業務。SAS是生產環境的首選

2)企業級SATA硬碟

SATA硬碟7200-10000轉/分,常見容量為1T和2T。使用量大,要求不高使用SATA

3)SSD固態電子盤

一般用於數據量小並且有超大規模高併發業--可以通過磁碟加記憶體緩存的技術方式解決這個大規模併發問題

 

磁碟使用小結:

1.線上的業務,使用SAS

2.線下的業務,使用SATA

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

4.根據數據的訪問熱度,智能分析分層從存儲。智能分析的案例 淘寶(sata500G+ssd80G)

特別註意:

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

 

操作系統是以扇區為單位將信息存儲在磁碟上的。每個扇區為512個位元組

小結:

1.扇區大小是512位元組

2.扇區主要分為兩部分:標識符頭標和數據段

3.標識符(頭標):三維地址(哪個柱面(磁軌),磁頭號,哪個扇區),標識扇區是否可靠。

4.數據段: 數據和保護數據的糾錯碼(ECC)

 

磁軌柱面扇區總括

1.一塊磁碟有1個或多個碟片,一個碟片有兩個磁頭,磁頭數=盤面數。 柱面數=磁軌數

2.同一個盤面,以碟片中心為圓心,每個不同半徑的圓形軌跡就是一個磁軌

  

fdisk -l

磁碟大小=磁軌數(=柱面數cylinders)*磁頭數(head)*512位元組*扇區數(sectors/track)

磁碟大小=柱面數*柱面大小(Unit)

 

磁碟讀寫原理小結:

1)磁碟是按照柱面為單位讀寫數據的,即先讀取同一個盤面的某一個磁軌,讀完整個磁軌之後,如果數據沒有讀完,磁頭也不會切換到同一盤面的其他磁軌,而是切換磁頭

2)不同磁頭間的切換是電子切換

 

磁碟基礎知識回顧:

1)磁碟的作用:存儲數據,物理設備。

3.5寸磁碟為例:

2)外部結構:

 正面板:固定面板:產地,容量,日期,轉數,品牌,條形碼,跳線,電壓,透氣孔,內六角螺絲。

 反面板:綠色控制電路板,上面有晶元,電容,電阻,緩存作用(free -m)等

            Buffer寫入緩衝區,cache讀取緩存區

 側面:電源介面,跳線,數據介面(ide sata sas scsi)

3)內部結構:

       磁碟片:2-14片 ,每個面都可以放數據

       主軸:裡面有軸承,馬達

       磁頭組件:磁頭,機械手臂,傳動軸

       前置控制電路,數據轉換器,永久磁鐵,步進電機(控制磁頭徑向移動)

       核心組件:磁頭及碟片

4)磁碟存取原理:

       磁碟讀數據時:將磁碟上的磁離子極性轉換成電脈衝信號,然後通過數據轉換器轉換成電腦可以識別的數據。

5)磁碟讀寫數據的原理

       磁碟讀寫數據時,按照柱面來讀寫數據的。可能會先讀一個盤面的某一個磁軌的數據,讀完之後,在向下讀取相同磁軌,不同盤面的數據,知道所有盤面相同磁軌的數據被讀取完畢,切換到下一個柱面。這個切換過程叫做尋道,尋道要靠步進電機控制,讓磁頭做移動了,這是機械運動,因此很慢,寫同理。

6)磁碟相關名詞:

       Disk 磁碟

       Head 磁頭

       Sector 扇區

Track 磁軌

Cylinder 柱面

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

       Block 磁碟塊

inode 索引節點

 

主引導記錄MBR的所在地:

0磁頭0磁軌1扇區(512位元組)

前446位元組代表主引導記錄,後64位元組代表磁碟分區表(每個分區占16位元組,這就是為什麼linux系統主分區+擴展分區只能有四個的原因),最後2位元組為分區結束標識

磁碟分區表的16位元組都代表什麼

1 bytes 分區狀態 1bytes 起始磁頭號 2bytes 分區起始扇區和柱面號 1bytes 分區類型

1 bytes 結束磁頭號 2bytes 分區結束扇區和柱面號 4bytes 線性定址 4bytes 分區大小

 

磁碟分區:

fdisk 適合小於2T的磁碟分區  --fdisk /dev/sdb

分區結束後 partprode /dev/sdb  告訴系統內核修改了分區

parted適合大於2T的磁碟分區,也可以對小於2T的磁碟進行分區

parted /dev/sdb mklabel gpt     parted /dev/sdb mkpart 0 2048000

磁碟分區知識:

分區實質:修改分區表,劃分起始柱面號和扇區號

一塊磁碟分區:最多4p,3p+e,2p+e,1p+e,1p,2p,3p   p主分區 e擴展分區 l邏輯分區

最多有一個擴展分區,操作系統的限制,擴展分區不能直接用,必須劃分邏輯分區

fdisk 分區的原理,就是修改64位位元組分區表。不能對大於2T的磁碟分區

parted GNU分區工具,可以適合各種分區情況,當然也支持大於2T分區

生產分區的建議:

常規分區:web集群節點

/boot 100-200M

swap 記憶體1.5(記憶體大於8G,就只分8-16G)

/ 80-200G

/data 數據分區

門戶網站:靈活分區

/boot 100-200M

swap 記憶體1.5(記憶體大於8G,就只分8-16G)

/ 80-200G

剩餘分區不分,留著,將來領用的部分自己再分

 

文件系統小結:

1.文件系統:文件系統是對一個存儲設備上的數據和源數據進行組織的一種機制,常見文件系統如ext2,ext3,ext4,NTFS或FAT,FAT32

2.分區必須格式化創建文件系統才能存放數據(所以必須格式化),不同分區只能有一種文件系統

3.

Linux下常見的文件系統ext2,ext3,ext4,zfs,xfs和Reiserfs

文件系統的選型

1)SAS/SATA硬碟文件系統選擇

a.reiserfs 大量小文件業務首選 reiserfs

b.xfs 資料庫MYSQL業務,門戶案例

c.ext4 視頻下載,流媒體,

Centos預設的文件系統,都是很優秀的

 

文件系統介紹:

磁碟分區之後,必須格式化,劃分文件系統,才能進行數據的存放

文件系統類型:ext2(沒有日誌功能),ext3(有日誌功能可以通過日誌文件恢復丟失的文件),

ext4(Centos 6 預設的文件系統),xfs(Centos 7 預設的文件系統),reiserfs(大量小文件的首選)

選擇文件系統的關鍵:維護成本,性能,可靠,綜合權衡

選擇文件系統的好與壞不是很重要,重要的在於你的前端有多少緩存,能幫磁碟擋住數據

前端緩存:CDN--->內部web cache-->資料庫和存儲cache--->最後到磁碟(資料庫和存儲)


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 大家好,我是痞子衡,是正經搞技術的痞子。本系列痞子衡給大家介紹的是 飛思卡爾i.MX RTxxx系列微控制器相關知識 。 恩智浦半導體於2018年10月發佈的i.MX RTxxx系列開啟了ML/AI MCU的新紀元,其第一款晶元i.MX RT600,搭載一顆主頻高達300MHz的Cortex M33 ...
  • 對於生產環境,需以高可用的配置安裝 Rancher,確保用戶始終可以訪問 Rancher Server。當安裝在Kubernetes集群中時,Rancher將與集群的 etcd 集成,並利用Kubernetes 調度實現高可用。 ...
  • awk文本處理基於模式匹配檢查輸入文本,逐行處理並輸出通常用在shell腳本中,獲取指定的數據單獨用時,可對文本數據做統計 一、語法格式格式1:命令 | awk [選項] '[條件]{編輯指令}'格式2:awk [選項] '[條件]{編輯指令}' 文件..若有多條語句,可用分號分隔print是最常用 ...
  • 環境如下: 資源伺服器_1:192.168.10.10 centos 7 tengine 2.3.0 資源伺服器_2:192.168.10.129 centos 7 tengine 2.3.0 代理伺服器:192.168.10.130 centos 7 tengine 2.3.0 一、安裝tengi ...
  • 使用 jsvc 啟動tomcat(使用普通用戶運行) jsvc簡介 在生產中,tomcat應該以daemon的模式運行,而且如果需要以普通用戶的身份啟動tomcat,那麼就不能使用1024以下的埠,這是Liunx系統的限制,只有root用戶才能使用小於1024的埠。那麼該如何將tomcat配置成 ...
  • 首先感謝下github上大佬,我才能使用這個軟體。也可以直接瀏覽https://github.com/DoubleLabyrinth/navicat-keygen進行安裝,非常詳細。 1.https://www.navicat.com.cn/download/navicat-premium 根據自己 ...
  • 註:本文涉及到註冊表操作,不認識請不要隨意修改! 右鍵菜單項儲存在註冊表 中,一般各種程式的右鍵菜單項都可以在此項下麵找到; 添加右鍵菜單項 1. 右鍵單擊 ,`新建(N) 項(K)` ,創建一個新項(名字最好是功能相關); 2. 單擊新項,然後 雙擊 右側 值,寫入 內容(右鍵菜單項顯示的文本); ...
  • 前言 在樹莓派中搭建php環境,按正常流程一般是直接在系統中apt-get install相關的軟體,不過如果某天我想無縫遷移到另一個地方,就又得在重新安裝一次環境。所以為了方便,就直接在樹莓派中使用docker鏡像來構建環境,這樣以後在任意地方直接拉鏡像就可以一鍵啟動環境。 1.安裝docker ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...