iT邦幫忙

2021 iThome 鐵人賽

DAY 4
0
自我挑戰組

淺入淺出分散式儲存系列 第 4

Day4 資料儲存 - file storage基礎

  • 分享至 

  • xImage
  •  

file storage 一種讓人易於了解的儲存方式

在學完Block storage之後,是否發現如果要和硬碟直接打交道,這是唯一的方式?是的,這就是唯一的方式,只是Block storage對人非常不友好,我們怎麼知道我的資料存在哪裏?是連續的存呢?還是分散的存?如果每筆資料都連續的存,那肯定對硬碟的利用率不友好

任何架構的難題只需要加一層就可以解決,如果不行,那就兩層

我忘了這是誰說的,但是我非常喜歡和同意這句話,為了讓人能夠輕鬆的操作儲存數據,在Block storage上面加了一層檔案系統,也就是File storage

我們平常用的Windows就是File storage,這大家應該很熟悉,由於File storage就是Block storage上面加一層,所以檔案的數據都是存在一個個的block中

除了檔案的內容之外,文件的metadata比如創建時間、權限、大小等等也需要存在另一個地方,專門存這些文件metadata的就叫做inode

一個檔案的inode可以透過stat來查詢

#> stat demo.txt                                                                         
  File: ‘demo.txt’
  Size: 12        	Blocks: 8          IO Block: 4096   regular file
Device: fd02h/64770d	Inode: 238749826   Links: 1
Access: (0644/-rw-r--r--)  Uid: (51426876/ ckaijia)   Gid: (  201/     mts)
Access: 2021-08-28 07:27:02.001795167 -0700
Modify: 2021-08-28 07:27:02.001795167 -0700
Change: 2021-08-28 07:27:02.001795167 -0700
 Birth: -

inode也會消耗儲存空間,所以格式化硬碟的時候,作業系統會將硬碟分成兩個區域,一個存數據,一個存inode,並且指定一個inode的大小,所以就算檔案很小,一塊硬碟裡還是有檔案數量的限制

那作業系統是如何讀取檔案資料呢?

首先,不是透過檔案名字,文件名字只是讓使用者方便識別,作業系統透過inode ID,每個inode都有一個號碼,根據使用者點開的文件找到inode號碼,可以透過ls -i demo.txt看到對應的inode號碼

第二,根據inode號碼找到inode的data

最後,根據indoe的data,找到檔案裡的數據存在哪個block


上一篇
Day3 資料儲存 - block storage優缺點及場景
下一篇
Day5 資料儲存 - file storage優缺點及場景
系列文
淺入淺出分散式儲存30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言