中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

linux I/O 棧 預習(上)

發布時間:2020-06-27 18:56:09 來源:網絡 閱讀:2436 作者:慢慢存儲路 欄目:軟件技術

二、預習

在我們進去device mapper的dm dedup學習之前,我們先要預習一下,什么是device mapper,和為什么device mapper能夠做塊重刪。

1、device mapper
照舊,我們先看一下維基百科對它的介紹。
The device mapper is a framework provided by the Linux kernel for mapping physical block devices onto higher-level virtual block devices. It forms the foundation of the logical volume manager (LVM), software RAIDs and dm-crypt disk encryption, and offers additional features such as file system snapshots.
注1:這一段的意思就是說device mapper是我們linux系統中非常重要的LVM和軟RAID還有加密、快照等特性的實現。

Device mapper works by passing data from a virtual block device, which is provided by the device mapper itself, to another block device. Data can be also modified in transition, which is performed, for example, in the case of device mapper providing disk encryption or simulation of unreliable hardware behavior.
注2:這一段的意思是說device mapper使用虛擬設備(dm-n)來提供與其他虛擬或者真實的塊設備的數據傳送,當然數據能夠在其中改變(比如raid會增加冗余信息),也可以不改變(比如linear就是透傳),或者就是更厲害的功能,加密等吧,可見這個device mapper一定可以是個常青樹,什么和存儲有關系的都可以用它實現。

我們大致了解的device mapper,我們還需要了解一下device mapper在linux I/O stack中的位置吧;
還是那個老圖,我們盡量看看,順便把其他的模塊也講解一下;
linux I/O 棧  預習(上)

鑒于篇幅有限,我們就從上往下講,因為本人從事linux I/O stack的研究已經有5年的時間,大概每個位置都是玩過的,但并非每個module都是專家,并且kernel I/O stack里面的存儲的知識都非常的深,所以要入坑存儲的同行的請三思啊。
ok,廢話不多說,我們從最上層開始講,這里只是概要性的分析,不涉及特別深。
linux I/O 棧  預習(上)
我把圖截成上下兩半,以block layer為分層。上面應該就是大概非常熟悉的三大塊,LIO、虛擬塊設備、VFS虛擬文件系統。
1、LIO(linux io target)
做傳統SAN存儲和分布式塊存儲的同學應該對LIO比較熟悉吧,至少都是聽過的,早些年我們做iscsi或者fc存儲的時候,那時候我們大多數用IET和SCST,后來隨著linux kernel對LIO的逐步完善,目前LIO可以支持非常多種類的fabric和backcore。
fabric:tcm_fc(我覺得可能是用于emulex的光纖卡),iscsi_target_mod(是對接linux kernel網絡協議棧)、tcm_qla2xxx(對接qlogic的光纖卡)、sbp_target(IEEE 1394),tcm_usb_target(做usb移動硬盤可以用上)等等吧,其中iscsi_target_mod可以被賦予infiniband的支持,會成為一個新的target為iser。
backcore:backcore簡單來講就是虛擬scsi lun的mod,它能夠解析和仿真幾乎常見的所有標準SCSI命令,讓它看起來和SCSI DISK內的LUN一樣。LIO能夠提供幾種backcore,core_file(通常是文件系統的某個文件,或者直接是將塊設備作為文件導出),core_iblock(能夠將linux塊設備導出),pscsi(能夠直接導出,比如直接導出/dev/sdb等)。
2、vfs(虛擬文件系統)
微微一笑,這里我不太懂,屬于瞎寫。
文件系統在linux中占有舉足輕重的作用,他可能是用戶和開發者最便捷能夠訪問資源的方式。
linux為用戶開發了很多可操作的文件系統。大致有以下幾種:
block-based fs:這類文件系統通常后端設備是一個或多個塊設備,它們的實體是一個能夠組織數據的表結構,通過查表(metadata)來實現文件描述符到塊的映射訪問,這能非常有效的進行我們日常所有的大部分工作和生活需求。我們比較常用的是ext2/3/4,xfs和btrfs等等。
Network fs:網絡文件系統,他們的誕生是要去解決,block-based文件不能夠有效共享文件而產生的。他們從本質上講都是分布式的,因為文件可能被多個client使用,這種文件系統通常需要非常復雜的分布式協議作為支持,如我們最開始接觸的NFS,從windows兼容的smb2fs,還有目前非常流行的ceph,目前來看ceph并非和它的前輩一樣只能夠作為NAS的導出協議,它能夠提供新興的存儲接口對象存儲和高效的塊存儲。
psedudo fs:偽文件系統。大家應該都會對/dev/sda這種塊設備直接進行過dd等操作,從vfs來看,/dev/sda這種bdev也是一種偽文件系統,包括我們更加數據的/proc、/sys、/configfs等開發者經常用來變成使用的接口,他們的注冊和使用都非常簡單,能夠高效的幫助我們完成各種系統功能的配置和查看。
special psedudo fs:這類特別偽文件系統,是非常重要的,我們經常會把/tmp和/var掛載為tmpfs,用來加速不需要持久化的信息,來提供運行速度。

大致說完了上面的兩個LIO和vfs后,我們就需要來講講top block device,也就是可能被導出的block decive,在linux中,被LIO和VFS使用,等價于被mount,即使獨占模式,保護塊設備的訪問安全。
top block device:也就是虛擬塊設備,這個在linux 里主要就是咱們經常用的LVM drbd md-raid bcache和device mapper,它們就是在/drivers/md/下面,他們就是真正承上啟下的塊虛擬化模塊,每個模塊都是比較有意思。這些內容會在后續的文章中一一講解。

【本文由51cto博客作者 “底層存儲技術” https://blog.51cto.com/12580077 個人創作,公眾號:存儲之谷】,如需轉載,請于本人聯系,謝謝。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

凤阳县| 内丘县| 海阳市| 贺兰县| 鹤岗市| 清涧县| 津市市| 威海市| 侯马市| 安宁市| 西丰县| 秀山| 日照市| 舒城县| 泾源县| 马鞍山市| 方山县| 颍上县| 云浮市| 报价| 馆陶县| 贺州市| 皮山县| 虹口区| 阳谷县| 连平县| 津市市| 英山县| 双流县| 志丹县| 武宣县| 固始县| 潢川县| 响水县| 正定县| 简阳市| 将乐县| 宽城| 长汀县| 大荔县| 石狮市|