[技術(shù)干貨](méi)一文讀懂Linux內(nèi)核中的Device mapper映射機(jī)制
Device Mapper的核心在于它的模塊化設(shè)計(jì),通過(guò)目標(biāo)驅(qū)動(dòng)程序(target driver)插件實(shí)現(xiàn)對(duì)I/O請(qǐng)求的過(guò)濾或重定向。已實(shí)現(xiàn)的插件包括軟RAID、軟加密、邏輯卷?xiàng)l帶化、多路徑、鏡像和快照等。這些插件構(gòu)成了一個(gè)可迭代的設(shè)備樹,根節(jié)點(diǎn)表示邏輯設(shè)備,葉節(jié)點(diǎn)表示物理設(shè)備。這種設(shè)計(jì)體現(xiàn)了Linux內(nèi)核策略與機(jī)制分離的原則,策略工作在用戶空間,機(jī)制在內(nèi)核空間。
在用戶空間中,Device Mapper通過(guò)命令行工具dmsetup和庫(kù)提供接口,允許用戶根據(jù)映射表創(chuàng)建或刪除邏輯設(shè)備,實(shí)現(xiàn)存儲(chǔ)資源的管理。映射表定義了邏輯設(shè)備到物理設(shè)備的映射關(guān)系,用戶可以通過(guò)dmsetup命令執(zhí)行這些操作。
Device Mapper的內(nèi)核部分主要涉及創(chuàng)建映射設(shè)備、維護(hù)映射表和目標(biāo)設(shè)備的管理。映射設(shè)備由內(nèi)核注冊(cè),并通過(guò)dm_table結(jié)構(gòu)組織映射表。目標(biāo)設(shè)備通過(guò)dm_target結(jié)構(gòu)表示,由Device Mapper根據(jù)映射關(guān)系和目標(biāo)類型進(jìn)行動(dòng)態(tài)管理。
在IO處理過(guò)程中,Device Mapper將所有塊級(jí)I/O請(qǐng)求從邏輯設(shè)備轉(zhuǎn)發(fā)到目標(biāo)設(shè)備。請(qǐng)求在設(shè)備樹中逐層處理,目標(biāo)驅(qū)動(dòng)程序根據(jù)定義的規(guī)則進(jìn)行I/O請(qǐng)求的過(guò)濾和處理。最終,請(qǐng)求被提交給物理設(shè)備完成操作。
Device Mapper不僅提供了存儲(chǔ)資源管理的靈活性,而且簡(jiǎn)化了開發(fā)邏輯卷管理器的工作。許多常見(jiàn)的管理工具如LVM2、dmraid等都利用了Device Mapper的用戶空間庫(kù),而無(wú)需直接使用dmsetup工具。同時(shí),Device Mapper的模塊化設(shè)計(jì)鼓勵(lì)用戶實(shí)現(xiàn)自定義目標(biāo)驅(qū)動(dòng)程序,以滿足特定的存儲(chǔ)管理需求。
總結(jié)而言,Device Mapper是Linux內(nèi)核中實(shí)現(xiàn)高效存儲(chǔ)資源管理的強(qiáng)大工具,它通過(guò)靈活的映射機(jī)制、模塊化的設(shè)計(jì)以及用戶友好性,成為現(xiàn)代Linux系統(tǒng)中不可或缺的組件。
干貨分享!Linux內(nèi)核線程之創(chuàng)建0號(hào)進(jìn)程與1號(hào)進(jìn)程
0號(hào)進(jìn)程是Linux內(nèi)核中的內(nèi)核線程,其名字叫做idle進(jìn)程,是操作系統(tǒng)Linux在初始化階段的首個(gè)內(nèi)核線程。0號(hào)進(jìn)程的主要作用有兩個(gè):一是創(chuàng)建1號(hào)進(jìn)程,二是當(dāng)沒(méi)有就緒的進(jìn)程時(shí),執(zhí)行cpu_idle函數(shù),讓cpu處于空轉(zhuǎn)狀態(tài)。Linux下有三個(gè)特殊的進(jìn)程:idle進(jìn)程(PID = 0)、init進(jìn)程(PID = 1)和kthreadd(PID...
干貨分享!一文讀懂Mendix低代碼開發(fā)平臺(tái)
Mendix的低代碼可視化開發(fā)工具適用于各種技能背景的開發(fā)者,無(wú)論是業(yè)務(wù)分析師還是技術(shù)專家。平臺(tái)采用模型驅(qū)動(dòng)和可視化開發(fā),確保代碼可維護(hù)且適應(yīng)性強(qiáng)。業(yè)務(wù)人員通過(guò)直觀的拖放工具設(shè)計(jì)應(yīng)用程序,而技術(shù)開發(fā)人員則能深入定制或擴(kuò)展功能,共享統(tǒng)一的概念和術(shù)語(yǔ),提高協(xié)作效果。Mendix的開放性和可擴(kuò)展性體現(xiàn)在其基于...
【存儲(chǔ)干貨】一文讀懂NAND閃存SLC、MLC、TLC、QLC與3D NAND
在選購(gòu)固態(tài)硬盤、移動(dòng)固態(tài)硬盤、閃存卡、U盤等存儲(chǔ)設(shè)備時(shí),了解NAND閃存的類型及其特性至關(guān)重要。NAND閃存是一種非易失性存儲(chǔ)技術(shù),廣泛應(yīng)用于外置設(shè)備、移動(dòng)設(shè)備和消費(fèi)電子產(chǎn)品,如手機(jī)、數(shù)碼相機(jī)等。NAND閃存有多種類型,每種類型都有其獨(dú)特的結(jié)構(gòu)特性、存儲(chǔ)位數(shù)和耐久性。其中,耐久性由閃存單元可完成的...
【干貨】linux有啥用,linux有啥用
Linux最初是為支持Intel x86架構(gòu)的個(gè)人計(jì)算機(jī)開發(fā)的免費(fèi)操作系統(tǒng)。目前,Linux已被移植到超過(guò)其他操作系統(tǒng)的計(jì)算機(jī)硬件平臺(tái)上,包括服務(wù)器、大型機(jī)和超級(jí)計(jì)算機(jī)。全球90%以上的最快超級(jí)計(jì)算機(jī)運(yùn)行Linux發(fā)行版或變體,包括基于Linux內(nèi)核的前10名最快超級(jí)計(jì)算機(jī)。Linux還廣泛應(yīng)用于嵌入式系統(tǒng),如手機(jī)、平板電腦、...
【干貨】deepin和uos,deepin和uos
UOS是一款新興的操作系統(tǒng),其技術(shù)基礎(chǔ)深厚,源自經(jīng)過(guò)多年發(fā)展的深度操作系統(tǒng)(Deepin Linux)。Deepin Linux由武漢深之度科技有限公司開發(fā),是一款基于Linux內(nèi)核的開源GNU\/Linux操作系統(tǒng),以桌面應(yīng)用為主。為了幫助學(xué)習(xí)Linux的用戶,我整理了一份“10G Linux學(xué)習(xí)資料大全”,涵蓋了Linux學(xué)習(xí)的各個(gè)層面,包括...
干貨|一文讀懂阿里云數(shù)據(jù)庫(kù) Autoscaling 是如何工作的
業(yè)界如AWS和Azure在其部分云數(shù)據(jù)庫(kù)上實(shí)現(xiàn)了Autoscaling能力,阿里云數(shù)據(jù)庫(kù)也擁有獨(dú)特的Autoscaling功能,此功能由數(shù)據(jù)庫(kù)內(nèi)核、管控及DAS(數(shù)據(jù)庫(kù)自治服務(wù))團(tuán)隊(duì)共同構(gòu)建。內(nèi)核及管控團(tuán)隊(duì)提供了數(shù)據(jù)庫(kù)Autoscaling的基礎(chǔ)能力,DAS則負(fù)責(zé)性能數(shù)據(jù)的監(jiān)測(cè)、Scaling決策算法的實(shí)現(xiàn)及Scaling結(jié)果的呈現(xiàn)。Autoscaling的工作...
技術(shù)干貨 018|云盤文件系統(tǒng)比較:Ext4、XFS和Btrfs
文件系統(tǒng)通常作為操作系統(tǒng)的一部分,實(shí)現(xiàn)在內(nèi)核中。如Ext4、XFS和Btrfs等文件系統(tǒng),其實(shí)現(xiàn)在Linux內(nèi)核的`fs`目錄下,實(shí)現(xiàn)了操作系統(tǒng)定義的對(duì)象和接口,如inode、dentry等。超級(jí)塊用于描述掛載文件系統(tǒng)的元信息,inode對(duì)象存儲(chǔ)文件的通用信息,dentry對(duì)象存儲(chǔ)文件路徑名的鏈接信息。這些信息分別由文件系統(tǒng)實(shí)現(xiàn)并...
【干貨】linux與windows的區(qū)別,linux與windows的區(qū)別
操作系統(tǒng)領(lǐng)域有三大巨頭,分別是Apple操作系統(tǒng)、Linux操作系統(tǒng)和Windows操作系統(tǒng)。Linux操作系統(tǒng)與Windows操作系統(tǒng)是其中的兩大巨頭,它們之間存在顯著的區(qū)別。Linux操作系統(tǒng)基于Linux內(nèi)核,而Windows操作系統(tǒng)則基于NT內(nèi)核,Linux內(nèi)核是開源的,允許用戶根據(jù)需要進(jìn)行個(gè)性化定制,但要求使用者具備一定的技術(shù)水平。Linux...
由Docker BUG引起的Linux宕機(jī)事故及解決辦法
擼內(nèi)核源碼 + Google 通過(guò)走讀Linux源碼和Google,發(fā)現(xiàn)當(dāng)系統(tǒng)創(chuàng)建新的namespaces時(shí),會(huì)因?yàn)閕p6mr_sk_done的值為空而引起系統(tǒng)混亂,從而導(dǎo)致內(nèi)核無(wú)法正常分配內(nèi)存,所以我們?cè)趌og文件中看到了許多Out-of-Memory。在Kubernetes環(huán)境,提到namespaces就能想到docker,因?yàn)閚amespaces是docker的核心技術(shù)之一,容器的資源...
硬核干貨分享:Linux添加新硬盤和擴(kuò)容已有硬盤
為了幫助學(xué)習(xí)Linux內(nèi)核技術(shù),這里推薦加入一個(gè)Linux內(nèi)核源碼交流群,共享了一些個(gè)人覺(jué)得較好的學(xué)習(xí)資源,包括書籍、視頻資料等。這些資源對(duì)于希望深入學(xué)習(xí)Linux內(nèi)核技術(shù)的人員非常有幫助。拓展閱讀推薦:Linux內(nèi)核移植小知識(shí)——網(wǎng)絡(luò)驅(qū)動(dòng)修改 最新干貨:Linux應(yīng)用開發(fā)編譯工具剖析 深度探究Linux內(nèi)存中的\/proc\/meminfo...
相關(guān)評(píng)說(shuō):
武都縣表面: ______ 簡(jiǎn)單說(shuō),linux就是跟windows一樣,是一種電腦操作系統(tǒng).可以在包括個(gè)人電腦在內(nèi)的各種計(jì)算機(jī)上使用.它使用的版權(quán)許可證是支持軟件的自由免費(fèi)、開放源代碼的GNU通用公共許可證GPL.多年來(lái),Linux獲得了廣大黑客、計(jì)算機(jī)愛(ài)好者、科...
武都縣表面: ______ 在早期的計(jì)算機(jī)中,程序是直接運(yùn)行在物理內(nèi)存上的.換句話說(shuō),就是程序在運(yùn)行的過(guò)程中訪問(wèn)的都是物理地址.如果這個(gè)系統(tǒng)只運(yùn)行一個(gè)程序,那么只要這個(gè)程序所需的內(nèi)存不要超過(guò)該機(jī)器的物理內(nèi)存就不會(huì)出現(xiàn)問(wèn)題,我們也就不需要考慮內(nèi)...
武都縣表面: ______ linux 是什么: 一個(gè)廣泛通用的高性能操作系統(tǒng).1 linux有什么用:可以用作服務(wù)器提供各種服務(wù)(www,ftp,email,dns),可以裝在路由器等嵌入式設(shè)備中,安卓系統(tǒng)就是基于linux內(nèi)核,可以說(shuō)沒(méi)有l(wèi)inux就沒(méi)有安卓.2 學(xué)linux能干什么:小可以開...
武都縣表面: ______ linux與XP相比它的優(yōu)勢(shì)在于穩(wěn)定\專業(yè),目前XP上的軟件linux下大部分都有支持的了.
武都縣表面: ______ linux屬于實(shí)時(shí)操作系統(tǒng).實(shí)時(shí)系統(tǒng)與分時(shí)系統(tǒng)特征的比較 (1)多路性.實(shí)時(shí)信息處理系統(tǒng)與分時(shí)系統(tǒng)一樣具有多路性.系統(tǒng)按分時(shí)原則為多個(gè)終端用戶服務(wù);而對(duì)實(shí)時(shí)控制系統(tǒng),其多路性則主要表現(xiàn)在經(jīng)常對(duì)多路的現(xiàn)場(chǎng)信息進(jìn)行采集以及對(duì)多...
武都縣表面: ______ 樹枝形目錄管理的,所有目錄全掛在/(根目錄)下..簡(jiǎn)單給你介紹下,linux存儲(chǔ)文件都是亂放,比如一間房,linux存放文件就是亂扔里面,讀取時(shí)比較快,方便.windows存放文件是一個(gè)挨著一個(gè),這樣如果讀取文件時(shí),有些文件被壓在其他文件下面,讀取沒(méi)有l(wèi)inux方便.大致這么理解就行.
武都縣表面: ______ 怎么讀《深入理解linux內(nèi)核》和《情景分析》有同感的人回帖.------解決方案-------------------------------------------------------- 沒(méi)有基礎(chǔ)看著兩本書是相當(dāng)吃力的!------解決方案-------------------------------------------------------- 得有相當(dāng)?shù)能浻布R(shí)積累才行 要...
武都縣表面: ______ 光盤有哪些內(nèi)容Red Hat Enterprise Linux不支持NTFS?這是因?yàn)榻刂聊壳盀橹?Linux內(nèi)核對(duì)NTFS的支持還不是很完整,為了系統(tǒng)穩(wěn)定性,RHEL就不啟用NTFS的功能.若真的需...
武都縣表面: ______ 首先應(yīng)該先了解linux內(nèi)核與linux操作系統(tǒng)的區(qū)別. Linux操作系統(tǒng)是包含linux內(nèi)核的.linux操作系統(tǒng)是將linux內(nèi)核進(jìn)行擴(kuò)展,安裝一些開發(fā)包和常用工具.比如ubuntu和centos可能會(huì)使用同一個(gè)版本的linux內(nèi)核,但是他們給linux內(nèi)核配套不同的工...
武都縣表面: ______ C、C++、Java都可以 VB即Visual Basic更多的是指Windows提供的開發(fā)環(huán)境,不能直接運(yùn)行于Linux 除此之外Linux下還常用的有python、php、perl、lisp、ruby、javascript等很多語(yǔ)言.