Linux使用mkfs創建文件系統
[10分鐘Linux]-Linux磁碟管理
無論使用fdisk,還是parted分區工具,將硬碟分區後。需要為硬碟創建文件系統,才能存儲數據。
1.什麼是文件系統?
文件系統(File system)指代存在計算機上的文件和目錄。文件系統可以有不同的格式,叫做文件系統類型(file system types)。這些格式決定信息是如何被貯存為文件和目錄。
文件系統主要的功能是用來儲存文件的數據。
當你在磁碟儲存一個文件時,Linux除了會在磁碟儲存文件的內容(Content)外,還會儲存一些與文件相關的信息,例如:文件的許可權模式 (Permission Mode)、文件的擁有者 (Ownership)……等信息。如此,Red Hat Enterprise Linux 才能提供與文件相關的功能 。
為了讓操作系統能夠在磁碟中,有效率的調用文件內容與文件信息,文件系統就應運而生;操作系統通過文件系統來決定哪些扇區要存放文件的信息、哪些扇區要儲存文件的內容。
2.文件系統術語
雖然目前計算機世界中有許多種不同的文件系統,但每一種文件系統的運行原理都大同小異。人類在設計文件系統的時候,為了能夠更快速的調用文件的信息,多數會將磁碟空間規划下列幾項組件:
2.1
塊
首先,文件系統會在磁碟建立若干個塊 (Block) 的特殊扇區,塊扇區主要用來存放文件的內容。Red Hat Enterprise Linux 通過文件系統取得文件內容時,每一次可以讀取若干個塊的數據。
塊還可以細分兩種:
1
數據塊(Data Block):主要是用來存放文件的內容。
2
超級塊(SuperBlock):則是用來儲存數據塊的信息。例如,文件系統中塊是空的或被填滿信息。
同一個文件系統的塊大小都是固定的,文件儲存到文件系統時,會使用若干個塊扇區儲存文件的內容;若文件大小無法整除塊大小,文件系統會採用無條件進入法自動多用一個塊來儲存文件的內容。
例如,某一個文件系統的塊大小設置為1K。現在,有一個文件內容大小為100.1K,這個文件就會使用101個塊空間,也就會佔用101K的磁碟空間,最後一個塊只會儲存 0.1K 的數據。至於最後一個塊則未使用到的0.9K空間,是無法儲存其他文件數據的。
你可以在創建文件系統的時候,決定該文件系統的塊大小。塊設置的越大,越能幫助提高調用效率,但也很容易浪費磁碟空間;而設的越小,雖可以減少磁碟空間的浪費,但也會降低磁碟調用的效率。
以剛才那個文件系統為例,因為該文件系統每一個塊大小為1K,100.1K大小的文件,就會佔用101個塊,浪費了0.9K 的磁碟空間。當 Red Hat Enterprise Linux讀取這個文件時,假設一次只讀取一個塊,那就得讀取101次,才能讀完整個文件;那如果文件系統的塊改為4K,同樣100.1K大小的文件,就會佔用26個塊,相對的就浪費了3.9K的磁碟空間;可是對 Red Hat Enterprise Linux 來說,只需要讀取26次就可以讀完整個文件,比 1K 大小的文件系統節省了約 75% 的時間。
2.2
索引節點:inode
在文件系統上還會建立若干個索引節點(inode, Index node),每個索引節點用來儲存一個文件的信息,例如:
1
文件類型
2
許可權
3
連接數量
4
屬主信息
5
屬組信息
6
文件大小
7
數據塊的位置
由於一個索引節點只能儲存一個文件的信息,因此,文件系統中配置了多少個索引節點,就代表最多只能儲存多少個文件—即使文件系統中仍有足夠的塊,也無法建立新的文件。
3.Linux常見文件系統
目前的Linux 內核支持了數十種的文件系統,Linux 中支常見的文件系統有以下幾種:
1
ext3:EXT3是第三代擴展文件系統(英語:Third extended filesystem,縮寫為ext3),是一個日誌文件系統,常用於Linux操作系統。它是很多Linux發行版的默認文件系統。
ext3文件系統的特點:
· 可用性:在異常斷電或系統崩潰(又稱不潔系統關機,unclean system shutdown)發生時,每個在系統上掛載了的 ext2 文件系統必須要使用 e2fsck 程序來檢查其一致性。這是一個很費時的過程,特別是在檢查包含大量文件的龐大文件卷時,它會大大耽擱引導時間。在這期間,文件卷上的所有數據都不能被存取。
· 數據完好性:ext3 文件系統在發生了不潔系統關機時提供更強健的數據完好性保障。ext3 文件系統允許你選擇你的數據接受的保護類型和級別。按照默認配置,ext3 文件卷被配置要保持數據與文件系統狀態的高度一致性。
· 速度:儘管 ext3 把數據寫入不止一次,它的總處理能力在多數情況小仍比ext2 系統要高。這是因為 ext3 的登記報表方式優化了硬碟驅動器的頭運動。你可以從三種登記模式中選擇來優化速度,但是這麼做會在保持數據完好性方面做出一些犧牲。
2
ext4:EXT4是第四代擴展文件系統(英語:Fourth extended filesystem,縮寫為 ext4)是Linux系統下的日誌文件系統,是ext3文件系統的後繼版本。
Ext4文件系統的特點:
·更大的文件系統和更大的文件
Ext3文件系統最多只能支持32TB的文件系統和2TB的文件,根據使用的具體架構和系統設置,實際容量上限可能比這個數字還要低,即只能容納2TB的文件系統和16GB的文件。而Ext4的文件系統容量達到1EB,而文件容量則達到16TB,這是一個非常大的數字了。對一般的台式機和伺服器而言,這可能並不重要,但對於大型磁碟陣列的用戶而言,這就非常重要了。
· 更多的子目錄數量
Ext3目前只支持32000個子目錄,而Ext4取消了這一限制,理論上支持無限數量的子目錄。
· 更多的塊和i-節點數量
Ext3文件系統使用32位空間記錄塊數量和i-節點數量,而Ext4文件系統將它們擴充到64位。
· 關於更多的ext4介紹參考百度百科介紹。
3
xfs:xfs文件系統是SGI開發的高級日誌文件系統,XFS極具伸縮性,非常健壯。所幸的是SGI將其移植到了Linux系統中。在linux環境下。目前版本可用的最新XFS文件系統的為1.2版本,可以很好地工作在2.4核心下。
主要特性包括以下幾點:
· 數據完全性:採用XFS文件系統,當意想不到的宕機發生後,首先,由於文件系統開啟了日誌功能,所以你磁碟上的文件不再會意外宕機而遭到破壞了。不論目前文件系統上存儲的文件與數據有多少,文件系統都可以根據所記錄的日誌在很短的時間內迅速恢復磁碟文件內容。
· 傳輸特性:XFS文件系統採用優化演算法,日誌記錄對整體文件操作影響非常小。XFS查詢與分配存儲空間非常快。xfs文件系統能連續提供快速的反應時間。筆者曾經對XFS、JFS、Ext3、ReiserFS文件系統進行過測試,XFS文件文件系統的性能表現相當出眾。
· 可擴展性:XFS 是一個全64-bit的文件系統,它可以支持上百萬T位元組的存儲空間。對特大文件及小尺寸文件的支持都表現出眾,支持特大數量的目錄。最大可支持的文件大 小為263 = 9 x 1018 = 9 exabytes,最大文件系統尺寸為18 exabytes。
XFS使用高的表結構(B+樹),保證了文件系統可以快速搜索與快速空間分配。XFS能夠持續提供高速操作,文件系統的性能不受目錄中目錄及文件數量的限制。
· 傳輸帶寬:XFS 能以接近裸設備I/O的性能存儲數據。在單個文件系統的測試中,其吞吐量最高可達7GB每秒,對單個文件的讀寫操作,其吞吐量可達4GB每秒。
4.創建文件系統
我們可以知道,如果磁碟沒有提供文件系統,Linux就無法通過文件系統使用磁碟的空間。因此,如果你希望Linux 能使用磁碟空間,就必須在該磁碟空間上創建文件系統(Make File System)。
由於創建文件系統過程中,會破壞原先磁碟中的文件系統數據,將造成原先文件系統中的文件將全部消失。因此,在創建文件系統之前,請確認磁碟空間中沒有重要的資料:一旦開始執行創建文件系統,會破壞原本磁碟空間上所有的文件。所以在創建文件系統的過程中,請務必特別小心,千萬別執行錯誤的命令。
創建文件系統前的準備工作
在創建文件系統前你必須準備:
1
一個磁碟空間:創建文件系統是以磁碟空間為單位,必須要準備好一個磁碟空間,才能在上面創建文件系統。
2
決定要創建成為哪種文件系統:你也必須在開始創建文件系統前,先決定好要在該 磁碟上建立哪種文件系統。
要在 Linux 中製作文件系統,可以使用 mkfs 這個命令。mkfs 的語法如下:
mkfs [-t FSTYPE] [DEVICE] [BLOCKS]
其中,-t FSTYPE指定要製作成為何種文件系統,FSTYPE 為文件系統的類型。如果你沒有指定文件系統,默認是 ext2 文件系統。DEVICE要製作文件系統的磁碟設備名稱。BLOCKS 要在這個文件系統上,建立多少個數據塊 (Data Block)。BLOCKS 不得超過磁碟空間的大小。如果沒有指定,則等於磁碟裝置的所有空間。
舉個例子:使用mkfs創建文件系統
以下是我使用mkfs創建/dev/sdb1的文件系統範例:
# mkfs -t ext4 /dev/sdb1
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
131648 inodes ① , 526120 blocks ②
26306 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=541065216
17 block groups
32768 blocks per group, 32768 fragments per group
7744 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912
Writing inode tables: done
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 21 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
① inode的數量
② 塊的數量
同樣,要創建其它的文件系統,只需要使用mkfs 時的-t 參數不同即可。
由於mkfs命令有幾個命令的簡寫位於/sbin目錄中,如下所示:
# ls /sbin/mkfs*
/sbin/mkfs /sbin/mkfs.ext3
/sbin/mkfs.cramfs /sbin/mkfs.ext4
/sbin/mkfs.ext2 /sbin/mkfs.ext4dev
所以,可以使用這些命令,可以直接創建相應的文件系統。
關注我們
雲運維聯盟
專註Linux雲平台運維
※Linux大分區利器parted
※10分鐘Linux-用戶管理
TAG:雲運維聯盟 |