#73. 分布式文件系统
20 Apr 2021 · 72 min
Fan Bin, a former Google engineer, traces how distributed file systems evolved from HDFS to object storage. Amazon S3's global namespace and simple API became the standard, pushing Azure Blob, Google Cloud Storage, and others to adopt S3-compatible interfaces. He built Alexio to abstract over multiple object stores, predicting object storage will dominate the next decade.
Chapters
个人 设备 的 数据 往往 存在 内置 的 存储器 里 但 在 云端 数据 往往 存在 千千万万 台 计算机 里 分布式文件系统 则 将 千千万万 台 计算机 统一 成 一个 系统 今天 我们 请 到 了 分布式文件系统 的 专家 范斌 来 给 我们 讲 一 讲 这 一 系统 的 历史 和 现状 这里 是 牛油果 烤面包 大家 好 我 是 斯特 达特 我 是 尚恩 今天 我们 请 到 了 Alexio 这个 公司 的 创始 工程师 曾经 在 谷歌 公司 工作 过 并且 是 卡奈 基梅隆 大学 计算机科学 的 博士 毕业 的 范斌 来到 我们 的 节目 和 我们 聊一聊 分布式文件系统 大家 欢迎 谢谢 大家
好, 非常 高興 能夠 來 到 牛油果 烤 麵 包播客 這樣 一個 節目然 後 跟 大家 一起 討論 一些 在 過去 的 一些 工作 以及 是 research 當中 碰到 的 很多 問題 和 一些 好玩
的 故事 好, 范斌 是 在 谷歌 這樣 的 大 公司 和 Axio 這樣 一個 算 創業 公司 都 還做 比 較類 似的 工作 能 不能 給我們 介紹 一下 在 這兩個 公司 做類 似的 工作 的 體驗 是 怎麼樣, 有什麼 不同 這是
一個 非常 好 的 問題, 在 谷歌 因為 它 是 一個 非常 成熟 的 上市公司 所有 的 後 端的 infrastructure 這些 東西 都 已 經建設 得 非常 完備 所以 在 這裡面 做 工程 師 一方面 你 是 一個 非常 幸福 的 所有 的 东西 都 准备 的 非常 好 另外 一方面 呢 可能 你 就 直接 去 调用 这些 现成 的 这些 服务 然后 去 处理 很大 很大 的 海量 的 这样 的 一些 数据 我 以前 在 谷歌 做 的 是 整个 谷歌 里面 的 这个 叫 logs 或者 叫做 日志 数据 这个 是 谷歌 内部 最大 海量 的 数据 然后 你 就要 考虑 每天 怎么样 去 处理 这些 海量 数据 的 一些 各种各样 的 问题 能 有
個 大概 的 概念 嗎? 這個 海量 數據 是 多 大?
現在 我 可以 說 的 是 說 光是 我們 處理 的 數據 企業 就 一個 數據 中心 是裝 不下 的, 你
可以 想像 一下 像 我們 平時會 接觸 到 MBGBTB, 那 這一種 是 用 什麼 單位 來 衡量?
比 這個 海量 再 高 幾個 數量
級 10 後 面 好多 個 零 叫 的 級 別 的 內容 PB
後 面是 EB, 這個 已經 很多 了 EB 後 面是 ZB 嗎, 這個 我 就 不太能 理解 了 一般 來 說
一個 數據 中心 可能 是 一個 在 PB 這個級 別 的 容量 過去 幾年 裡面 是 從 幾個 PB 到 幾百個 PB 的 量級
所以 我 聽 范冰 的 感覺 就是 說 在 谷歌 工作 就是 這個 規模 非常 的 大 但是 就 好像 在 搭 積木 一樣 好像 沒有 什麼 特別 多 能夠 創新到 很 深 的 機會 是不是 也 不能 這麼
說 其實 有 很多 組在 做 非常 有意思 的 工作 只是 說 你 在 不同 的 項 目裡面 你 能 做 的 東西 因為 周圍 的 東西 都 搭建 得 非常 的 完備 所以 可能 其實 是 一個 相對 而言 就是 更 像 一個 搭 積木 這樣 的 一個 過程 你 把 你 這塊 有 很多 輪子 都 已 經造 好 了 去 做然 後 相比之下 在 比如 說 像 Luxor 這樣 的 一些 創業 公司 我們 做 的 是 一個 開源 軟件然 後 你 就 有 機會 是 從 零開始 去 搭建 這樣 的 一個 系統 這個 系統 是 一個 分 佈 式 的 一個 系統 有 很多 不同 的 一些 組件然 後 很多 組件 之間 怎麼 去 互相 通信 怎麼樣 能夠 做 各種 優化 怎麼樣 能夠 讓 他 和 用戶 有 一個 很 好 的 互動 然後用 戶用 起來 也 很 容易 很 舒服 然 後 很多 這樣 的 一些 從 零到 一去 搭建 這樣 的 一個 服務 的 機會 這個 的 話 可能 在 谷歌 是 只有 少數 一些 項目 組 可以 去 做 的 這個 還是 非常 不一樣
的 一個 體驗 能 不能 給 大家 大概 介紹 一下 您 在 Alexio 做 的 是 哪 方面 的 工作 我
就 說 一下 我 其實 就是 做 Alexio 這樣 一個 開源 系統 但是 Alexio 這個 系統 是 幹什麼 的 呢 它 是 一個 我們 對 它 名稱 叫做 分 佈 式 開源 的 一個 數據 編排 系統 其實 呢 編排 系統 對 但 實際 上 你 可以 把 它 理解 為 排練 的 意思 不是 這個 其實 是 稍微 有點 不 一樣 你 更 多 的 可以 理解 為 它 是 一個 我們 提供 了 一層 數據 的 虛擬層 以及 是 数据 的 一些 数据管理 的 然后 让你在 当 你 比如说 跑 大 数据 或者 是 机器 学习 的 这些 应用 的 时候 可以 跑 的 更 效率 更高 以及 是 管理 起来 更 方便 以及 是 部署 起来 可能 也 会 更 容易 然后 这样 的 带来 的 一些 好处 在 如果 对应 到 单机 里面 的话 这个 当然 我们 可能 会 说 如果 你 把 它 对应 到 单机 的 这个 操作系统 的 概念 里面 的话 可能 更 多 的 是 对应 到 比如说 virtualmemory 或者说 是 这个 virtualcache 以及 是 这个 linux 的 virtualsystem 这样 的 一些 virtualfilesystem 这样
的 一些 虚拟内存 像 缓存 啊 这个 我们 今天 要 讨论 的 话题 叫做 分布式文件系统 啊 分布式 大家 可能 很多 人 知道 好多 机器 叫 分布式 啊 那个 文件系统 呢 在 我们 这个 暴露 年龄 那些 人 我们 这代人 都 知道 文件系统 是 什么 用 的 很多 啊 但是 可能 哎 新 一代人 是不是 已經 不 太 知道 文件 系統 是 什麼 了 你 們 這代人還 知道 嗎 我 覺得
我們 還是 一代人 但是 我覺 得 可能 是 下一代 人 就是 可能 我 的 什麼 池子 之類 的 這一輩 的 人 感覺 平時 從 小到 大 可能 剛開始 就是 從 手機 開始 用 起來 他們 可能 對 文件 系統 這個 概念 就 比 較 差然後因 為 我 覺得 我們 成長 的 時候 大家 玩電腦 的 時候 都 知道 有個 東西 叫 文件 夾是 吧還 知道 有些 特別 的 東西 CD
什麼 什麼 DIR 是 吧
就 还 知道 D盘 C盘 还 知道 有 一些 神奇 的 东西 应该 放在 学习 这个 文件夹 很少 用 学习 资料 里面 知道
有 A 盘 吗 我 有 印象 A 盘 还有 B 盘 吗 B
盘 就 没有 见过 然后 但是 现在 好像 他们 那种 更 小 一辈 的 用 手机 那些 朋友 他 就是说 我 就 打开 Apps 他们 的 概念 都 是 App 然后 打开 App 之后 比如说 我 有些 照片 放在 哪里 他 就 觉得 我 这个 App 可以 有 自己 的 方式 把 我 的 那些 照片 都 组织 起来 那 我 就 可以 找到 它 把 它 打开 来 对于
我 这个 粗浅 的 理解 啊 这个 文件系统 就是 有 一个 东西 叫做 叫做 文件 是 吧 就是说 有 有 个 文件 有个 文件名 有 一个 大小 啊 什么 什么 点 什么 什么 一般 是 然后 里面 就是 一堆 数据 是 吧 也 不 知道 怎么 排 的 然后 文件 上面 有 有 有 叫 什么 文件夹 是 吗 对 文件夹 叫 文件夹 对 文件夹 文件夹 还 能 有 多层 還有 概念 叫盤, A 盤, B 盤,
C 盤 還有 一個 叫 盤 的, 這太 複 雜了 專家來 跟 我們 說 我們 的 理解 的 文件 系統 是 這麼 回事 嗎 對, 我覺 得 你 們 的 文件 系統 從 用戶 的 角度 來 說 確實 看到 的 就是 這些, 你 比如 說 打開 了 一個
Windows 的 電腦然 後 你 打開 了
以後它 會 有 一個 桌面 然 後 桌面 裏 面 你 可以 進入 到 我 的 電腦 裏 面 可以 進入 A 排 B 排 或者 C 排然 後 它 有 一個 豎形 的 一個 組織 目錄 那 這個 其實 是 在 視窗 或者 Windows 這個 操作 系統 裏 面其實 是 比 較 獨特 的 在 比如 說 像 UNIX 或者 Linux 的 話 它 一般 會有 一個 根 所有 東西 都 是屬 於 這個 根 底下 的 然 後 不同 的 這些 設備
只是 在 就是 一個 反 斜杠 一個
斜杠 然 後 這個 反 斜杠 就
特別 牛 逼 Windows 是 個 C
冒號 正 斜杠 這裡面 其實 也 都 是 當年 的 時候 有 很多 宗教 戰爭 了 就是 到底 是 反邪綱 還是
正邪 綱哪個 是 正 哪個 是 反, 我 可能 說 反 了 你 們
這些 是 搞 這些 東西好 無聊 啊
我們 剛才 管 那個 東西 叫 文件 夾專家 不管 那個 叫 文件 夾, 叫 目錄 是 吧 文件 夾和 目錄 是
一個 東西 嗎 對 這也 是 很 有意思 的 一個 事情 如果 是 說 對 應到 英文 的 話 這個 文件 夾 可能 是 從 這個 folder 這個 詞 翻譯 過來 的 然 後 如果 是 目錄 的 話 更 多 的 應該 是 從 directory 然 後 你 如果 是 說 進入 到 技術 這個 層面 的 話 大家 應該 是 喊 它 叫做 目錄 的 這個 是 說 從 linux 從 unix 開始 就是 應該 是 這麼 去 一個 這是 它 的
術語 就是 目錄 叫 了 幾 十年 了 是 吧 發明 的 時候 叫 目錄 是 吧 对 对 包括 我
小 的 时候 用 DOS 这样 的 一些 操作系统 的 时候 大家 都 是 管 它 叫 目录 只有 到 后来 Windows 出现 了 以后 它 做出 一个 图标 了 像是 一个 文件夹 一样 那个 时候 大家 开始 管它 叫 文件夹
这个
很 正常 因为 文件 的 上 一层 是 什么 应该 是 文件夹 嘛 文件 上面 是 目录 文件 嘛 就是 那么 一张 纸嘛 有个 红头文件 嘛 是 吧 上面 一个头 下面 一个顶 那个 文件 上面 怎么 能 叫 目录 呢 应该 叫 文件夹 嘛 对 吧 我 觉得 他 可能 是 这么 觉得 的 可能 是
windows 它 那个 视窗 系统 它 的 图标 太 深入人心 了 所以 大部分 人 都 是 记着 就是 文件夹 了 不过
说起 这个 其实 我们 刚才 说 了 很多 可能 很多 一些 比较 新 的 听众 啊 比较 年轻 的 听众 都 不 知道 我们 在 说 什么 啊 但 对 他们 可能 所 认为 的 印象 中 的 这个 文件 呀 文件夹 呀 可能 是 在 云盘 上 的 对 吧 比如说 百度网 盘 呀 或者 境外 的 叫 这种 是 吧 是 叫 dropbox 呀 上面 这种 这种 云盘 上面 有个 文件夹 上面 有 文件 啊 文件 可以 是 圖 像 可以 是 音樂 可以 是 文檔 是 吧 那 這個 雲盤 是不是 也 可以 叫 文件 系統 呢 就是 上面 也 有 文件 也 有 目錄 這件 事 其 實雲盤
是 在 做 一件 很 努力 的 一件 事 就是 把 自己 打扮 成一個 文件 系統 希望 能夠 讓 自己 給用戶 一個 感覺 是 說 我 這個 像是 一個 文件 系統 包括 從 介面 上面 來 說 都 是 這樣 但 實際 上 它 背 後 的 實現 我 敢 打 賭 是不是 文件 系統 或者 我 知道 它 就 是不是 文件 系統 只是 說 它 把 這個 自己 包裝成 了 一個 文件 系統 讓 用戶 用 起來 的 話 有 一種 熟悉 的 感覺 包括 像 AWS 的 S3 它 的 瀏覽 界面 裡面 都 會 有
這樣 的 一種 感覺 所以 文件 系統 就是指 這樣 一個 組織 文件 的 一個 比如 說 通過 目錄 組織 文件 的 這樣 一種 方式 嗎 從 用戶 的
你 真正 感知 到 的 話 這個 確實 就是 用戶 看到 的 但是 你 要是 從 實踐 它 的 一個 角度 來 說 的 話 它裡 面還 包括 很多 其他 的 一些 東西 這個 可能 是 今天 我們 要 去 有 機會 再 去 說 的 這個 東西 一直
覺得 文件 系統 這個 東西 就是 剛才 說 的 一個 有 一個 文件名 有些 文件名 是 一些 數據 然後有 目錄 可以 改名 是 吧 這個 是 一個 非常 非常 非常 優 美的 一個 叫 什麼 叫 接口 啊 我們 這個學 计算机 的 人 喜欢 用 一个 词 叫做 抽象 这个 词 就 很 抽象 啊 或者 叫 抽象 啊 或者 这样 就是说 做 计算机系统 人 认为 这个 做 牛 逼 的 就是 做 那么 一个 抽象 啊 一个 那么 一个 接口 啊 文件 就是 一个 很 牛 逼 的 接口 你 可以 说 数据 这件 事 他们 可以 组织 数据 的 这个 物理 形式 啊 就是说 在 硬件 上 可以 是 各种各样 的 可能 可以 是 硬盘 可以 是 软盘 可以 是 很多 硬盘 可以 是 我们 待 会 可以 说 啊 是不是 可能 是 存在 很多 机器 上面 但是 我们 就 可以 就是 这么 一个 接口 这么 一个 接口 就是 这么 一个 文件名 下面 有 这么 一堆 二进制 有 目录 就 可以 把 下面 这些 所有 的 具体 的 这些 硬件 的 这些 怎么 组织 的 方式 全部 都 遮盖 掉 大家 都 不 知道 我们 可以 是 同一个 同一个 接口 下面 可以 是 雲盤 下面 可以 是 本地 然後還 可以 挪來 挪去 我 覺得 這是 一個 非常 優 美的 這麼 一個 接口 這個 范斌 有
沒 有 同感 我 完全同意 我覺 得 這個 抽象 其實 是 一個 非常 牛 的 一個 抽象 然後讓 它 一方面 是 足夠 的 簡單 其實 標準 的 這個 抽象 叫 Linux 裡面 這個 VirtualFileSystem 的 抽象 也 就 那么 二三十个 调用 二三十个 接口 二三十个 东西 但是 它 足够 强大 能够 让 你 做到 各种各样 的 一些 事情 所以 这个 其实 是 件 很 牛 的 足够 简单 同时 功能 又 足够 丰富 而且 效率 足够 高 但是
我 聽 說 雖然 這麼 厲害 的 一個 抽象 但是 二十年 前 的 時候 差點 被 幹 掉 了 就是 說
有 一個 很大 的 一個 爭議 當時 的 時候 就是 引起 了 一個 學界裡面 的 一個 爭論 是 說 我們 到底 需不需要 一個 在 本機 跑 文件 系統 需要 這樣 一個 東西 還是 說 我們 直接 就 把 數據庫 拿 過來 就行了 數據庫 也 是 一個 非常 強勢 在 計算機 的 系統 領域 裡面 一個 非常 古老 的 一個 分支 就是 我們 的
老本行
它 基本上 跟 操作 系統 或者 是 跟 其他 的 這些 都 是 差不多 古老 的 一個 分支 了 很早 很 早就 開始 有 但是 在 這個 數據庫 就是 一直 引進 的 是 非常 快然 後 再 比如 說 我 記得 可能 是 在 20 年 往後一點 的 時候 就 有 一個 很大 的 爭論 就是 文件 系統 做 的 很多 事情 你 可以 用 数据库 去 模拟 它 或者 是 去 替代 它 是 没有 问题 的 而且 可能 数据库 的 功能 更 强大 它 在 实现 效率 上 在 它 的 包括 提供 的 语义 上面 的话 能够 提供 各种各样 的 一些 东西 包括 还有 很多 很 神奇 的 一些 数据 统计 啊 什么 的 你 用 文件系统 可能 不是 那么 方便 去 做 数据库 的话 可以 给 你 很 好 的 一些 东西 给 你 一些 很 好 的 一些 反馈 对 所以 当时 其实 是 有 一个 这样 的 一个 争论 到底 是不是 应该 咱们 就 干掉 文件系统 不要 再用 这样 的 一套 东西 了 而是 使用 这个 数据库 直接 底下 存 所有 的 数据 就 可以
了 就 讓 我 想起 來用 文件 系統 的 話 比如 說 我 要 找 一個 文件 我 就要 從 一開始 的 很 高層 的 一個 文件 目錄 開始 找 起來 一個點 進去 一個 點進 去 最 後 找到 那個 文件 但是 數據庫 的 話 說 不定 就是 稍微 設置 一些 條件 挖 就 刷 出來
了 我們 做 數據庫 的 其 實覺 得 文件 系統 和 數據庫 有 很多很多 的 相似 之處 了 但後來 這個 事情 就 不了了之 了 嗎 後 來 這個
事情 的 話 確實 也 就是 不了了之 了 因為 做 文件 系統 的 這幫人 他們 就是 興趣 方向 就 改 了 更 多 的 是 說 我們 在 追求 是 看 了 谷歌 的 這些 研究 以後是 說 怎麼 去 做 分 佈 式 的 文件 系統 這個 東西 更酷 或者 叫 並行 的 文件 系統給
高性能 計算 去 用 這個 就是 我們 今天 要 聊 的 話題 了 這個 爭論 大家 就 不太管 了 覺得 我們 要 擁抱 新 的 未來 了 就是 分 佈 式 文件 系統 這件 事
是 吧 這裡 其實 我 可以 吐槽 一下 就是 因為 文件 系統 的 分 佈 式 的 這條 路 走 的 是 非常 的 順暢 而且 走 的 非常 的 好 因為 谷歌 的 那 幾 篇文章 大家 就 知道 可以 往 這個 方向 走 但是 數據 庫系統 的 分 佈 式 走 了 就 沒 有 那麼 順暢 了 這裡面 有 很多 struggle 然 後 斯托 亞哥 你 應該 是 你 做 這塊 的 你 也 知道 就是 說 實際 上分 佈 式 的 數據 庫還 算是 一個 比 較
前沿 的 一個領 域分 佈 式 這個 數據庫 有 很多 槽 可以 吐 我們 上次 吐 這個 數據 倉庫 的 時候 吐 那位 大佬 DavidWade 認為 他 80 年代 發明 了 分 佈 式 數據庫 一直 懟 谷歌 的 人 這個 我們 以 後 可以 再聊 提到 分 佈
式 文件 系統 我們 剛才 聊 了 這麼 多 文件 系統 包括 跟 大家 平時 的 時候 應用 方面 的關 係 分 佈 式 這個 詞 是 什麼
意思 的 這個 詞其實 也 是 非常 的 沒 有 確定 的 一個 含義的 一個 詞 在 近代 性科 學裡面 有 很多 詞其實 大家 使用 很廣 但是 你 找 一個 真正 非常 確切 的 含義 可能 也 是 很 難 的 很 難 去 下 一個 定義 但是 我們 通常 所 理解 就是 說 你 做 這個 系統 它 不是 一台 機器 在 單一 的 一台 機器 上 就 可以 完成 的 而是 說 有 很多 個 機器 一起 去 組合 起來 完成 一個 我 想要 去表達 的 一個 功能 在 這個 過程 當中 可能 各個 不同 的 部件 之間 它 會 有 很多 通信 有 很多 協作然 後 或者 是 說 有 互相 的 一些 校驗 保證 這個 我們 確實 是 得到 一個 完整 的 是 一個 真正 的 一個 這樣 的 一個 信息 這裡面 的 話 就是 一個 整個 在 計算機 領域 裡面 一個 非常 大 的 一個 分辨 別類 叫 分 佈 式 系統 然後分 佈 式 存儲系統 或者 是 分 佈 式 文件 系統 其實 是 分 佈 式 系統 的
一類 可以 這麼 簡單 理解 嗎 就 比如 說 你 這個 文件 系統 最後它 背 後 的 其實 就 不是 一台 電腦 它 是 有 多台 機器 這叫 分 佈 式 沒錯 沒錯 可能 很多
听众 听 了 以后 就 更 糊涂 了 但是 我 希望 听 完 这期 节目 大家 知道 分布式 分析 系统 是 什么 啊 这个 范斌 作为 这方面 的 专家 了 当年 在 这个 凯南 基梅隆 大学 这是 世界 上 最好 的 计算机专业 之一 啊 读 博士 的 时候 就 做 就 做 过 这方面 的 研究 啊 但 这个 范斌 认为 在 历史 趋势 上 有 什么 特点 吗 其实
这块 有个 很 有意思 的 一个 趋势 就是说 你 如果 是 考察 这个 存储 是 一端 然后 计算 是 另外 一端 那么 他们 之间 的 这个 关系 可以 非常 重要 的 或者说 是 直接 影响 到 怎么 去 设计 一个 分布式 的 文件系统 分布式 的 一个 存储系统 然後在 這個 過程 當中 呢 我們 可以 明顯 地 看到 一個 歷史 的 一個 趨勢 是 在 兩極 之間 來 回 的 一個 擺動 或者 說 我 通常 會 說 這個 歷史 人類 歷史 在 很多 不同 的 層面 不同 的 維度 上面 都 是 一個 螺旋 上升 這樣 的 一個 方式 去 進行 的 比如 說 早期 的 時候 這個 你 需要 去 使用 這個 數據 需要 使用 這個 文件 的 計算 和 這個 它 都 是 放在 一起 的 一個 單一 的 一個 一體 的 最早 的 情況 後 來 呢 可能 會 出現 了 一些 分離 就是 說 有 一個 客戶 端 和 這個 这样 的 一个 分离 然后 再 之后 呢 又 会 出现 了 比如说 把 这个 东西 变成 了 一个 混合 在 这边 是 谷歌 的 这样 的 一个 研究 啊 在 最早 的 时候 出 了 那些 文章 导致 了 大家 都 会 信得 是 说 如果 我要 发 我 要 做 一个 高效率 的 分布式 的 一个 存储 和 计算 系统 的话 它 必須 是 一個 緊握 合 的 一台 機器 上面 同時 去 跑 計算 和 存儲 這樣 的 話 可以 達到 數據 的 利用 的 效率 最高 然後再 往 後 又 會 發現 隨著 雲計算 的 興起然 後 大家 發現 谷歌 實際 上 最早 在 PayPal 裡 提倡 的 那些 架構 又 不是 一個 特別 合適 對 資源 進行 一個 很 好 管理 的 方式 又 開始 把 它們 分開 所以 整個 這系統 就 一直 是 在 整合 分開 整合 分開 這樣 一個 過程
當中 去 搖擺 所以 就是 說 天下 大勢 分久必合 合久必分 是 吧 就是 說 時 而 存儲 和 計算要 放在 一起 時 而 又 是 變成 一個 非常 独立 的 过程 这个 存储 这个 概念 呢 其实 可能 很多 听众 并 不是 特别 的 熟悉 啊 就是 我们 广义 的 存储 就是 主要 只要 存 东西 就是 存储 啊 计算 就是 你 要 做 一件 事 的 那个 最 基础 的 要 做 的 那个 东西 是 吧 那个 叫做 计算 是 吧 对 对 比如 說 你 要 放 一個 視頻 是 吧 解碼 那件 事情 就 叫做 計 算是 吧 然 後 這個 存 那個 視頻 本身 的 那個 數據 就是 存儲 對 吧 就是 時 而 這個 解碼器 就 在 和 存儲 就 放在 一起 時 而 這個 存储 可能 是 存在 另外 一个 地方 然后 你 调 出来 才 在 另外 一台 机器 上面 解是 吧 大概 就是 这个 意思 是 分久必合 和 久 必分 对 分久必合
和 久 必分 但是 其实 并 不是 说 比如说 那个 时间 的 人 就 特别 笨 没有 想到 其实 那样 做 更好 不是 这个 意思 而是 说 在 当时 的 技术 条件 底下 当时 的 硬件 和 当时 的 数据量 以及 当时 计算 的 特性 决定 了 在 那个 架构 是 更优 的 然后 之后 随着 可能 数据量 其实 大家 知道 数据量 一直 是 在 增加 而且 這個 計算 的 方式 也 有 很大 的 一些 變化 所以 這些 導致 了 在 不同 的 年代 裡面 當時 可能 最時 髦 或者 是 最 重要 的 一些 工作 一些 計算 的 一些 負載 它 會 影響 到 我們 怎麼 去 設計 整個 一套 背 後 的 這套 後 端的 這套
系統 的 架構 好, 我們 之前 說 分久必合, 合久必分 啊, 我們 從 第一次 分開 始講 的 吧, 最開始 的 時候 我 理解 就是 都 放在 一起 是 吧, 非常 混沌 的 時候 就 放在 一起 是 吧?
對, 早期 的 時候 你 看, 那個 時候 很 貴 的 啊, 就是 硬盤, IBM 是 第一 個 能夠 生產 這種 商業 硬盤 的 嘛, 那一塊 硬盤, 它 是 非常 非常 的 貴 就是 價值 連城 那個 時候 能 有 一塊 硬盤 就 已經 是 非常 的 不錯 了 所以 大家 都 是 把 這個 數據 都 是 放在 這個 硬盤 上 然後想 的 是 說 我 怎麼樣 把 這個 硬盤 的 容量 造得 更大然 後 這個 硬盤 的 速率 造得 更 高 這個 是 之前 的 時候 主流 的 一些
想法 就是 買 一塊 已 經夠 可以 了 你 還要 在 裡面 搞 買 多塊 那 是 多 好 的 一件
事情 然 後 這個 時候 如果 是 對 計算機 這塊 可能 稍微 有點 了解 的 聽 眾們 可能 會 聽 說 有 一個 叫做 RAID 叫 冗餘磁盤 陣列 這樣 一個 概念 RAID 冗余 词盘 阵列,
哇, 每个 词 都 听 着 很
深奥 的 样子 他 其实 就是说 是 在 80 年代 的 时候 加州大学 伯克利分校 的 老师 和 学生 提出 的 一个 概念 然后 其中 的 一个 主要 的 一个 作家 就是 GarthGibson 是 我 在 CMU 的 时候 虽然 不是 我 的 导师, 但是 我们 合作 过 很多 项目 就是 非常 的 close, 非常 的 接近 的 一个 老师 就是 他 在 念 博士 的 时候 发明 的 这个 事情 这个 工作 本身 是 在 工业界 是 产生 了 巨大 的 一个 影响 但 当时 的 时候 其实 是 一个 非常 有意思 的 一个 可以 说 是 误打误撞 的 一个, 这 是 据 他 自己 说 是 一个 误打误撞 的 这样 的 一个 东西 他 早 是 刚刚 找 老师 找 完 老师 以后 老师 给 他 一堆 论文 就 说 你 在 这 几天 里面 把 这个 论文 给 看 了 然后 给 我 写 一个 综述 然后 他 就 真的 是 吭哧 吭哧 地 把 这个 东西 给 给 看 完 了 以后 然后 觉得 我 写 一个 综述 吧 可以 没 问题 我 不仅 是 写 完 了 就是说 我要 解决 这个 问题 应该 是 怎么 去 做 同时 还会 归纳 了 一下 把 这个 东西 分成 了 几类 第一类 第二类 第三类 第四类 然后 或者说 往后 再 推 还 可以 用 第五类 的 方式 去 做 这个 事 或者 第六类 的 方式 去 做 这个 事情 然后 就 给 他 的 导师 看 他 导师 说 你 这 写 的 挺 好 的 要 不 我们 把 这个 就 这个 宗数 就 拿出 去 发 一篇 论文 吧 然后 呢 你 不能 就 直接 说 这 是 第一类 第二类 这样 不行 我们 给 它 起个 牛 逼 的 名字 什么 名字 呢 就 哎 这 样子 语词 繁殖 类 吧 就 叫 REITREIT1 从 REIT0 是从 0 开始 的 这 是 有 一套 话语 体系 就 建立 起来 了 从 REIT0 一直 到 最后 的 REIT6 其实 到 后面 还有 然後別 人 一 看 你 不僅 是 把 所有 的 不同 的 形式 都 歸納 出來 了 而且 還能夠 想到 一套 發明 一套 新 的 一套 術語 體系 去 描述 這個 東西 就 覺得 這個 工作 特別 的 牛 所以 他
是 一個 博士生 去 找 導師 說 這個 你 先讀 論文 預熱 是 吧 然後他 就 發現 可以 這麼 搞 一下 然後被 這個 導師 吹 了 一下 然後就 吹 了 這麼 一個 牛 逼 的 東西 是 吧 對 所以 冗余 此盤
陣列 需要 解決 什麼 問題 呢 這個
其 實要 解決 的 問題 就是 從 當時 的 角度 是 說 如果 我 的 數據 如果 是 要 放到 幾個 不同 的 磁盤 上面 去 我 怎麼樣 能夠 保證 這個 數據 的 可靠性 以及 是 能夠 以 很 高 的 速率 去 讀取 這個 數據 其實 還是 說 讀 數據 的 可靠性 以及 是 讀
數據 的 一個 性能 所以 這個 時候 大家 已經 有 錢 了 已經 開始 考慮 多 買 幾塊 磁盤 了 是
吧 這個 時候 就 特別 有意思 就是 說當 他 開始 提出 來 這個 概念 的 時候 就 被 人 批得 很慘 主要 批评 他 的 点 就是 在于 大家 没钱买 这么 多块 硬盘 為 什麼 需要 兩塊 硬盤 為 什麼 我 需要 六塊 硬盤 去 做 這個 事情 一塊
硬盤 不好 嘛 這是 真實 的 貧窮 限制 的 想像力 是 吧 是 的
所以 在 那個 時候 的 人 就 真的 是 覺得 我 一塊 硬盤 就 已 經夠 就 已經 是 要 賣 腎 了 是不是 就 沒 有 辦法 再 能夠 負擔 得 起 就是 你 這麼 多塊 磁盤還 搭成 一個 陣列 去 做 這個 事情 當時 的 人 就 沒 有 想到 有 這樣 的 一種 做法 或者 說覺 得 這個 事情 不 現實 超前 了 但是 沒 想到 真的 是 說 計算機 因為 摩爾 定律 啊 所有 的 這些 東西 飛速 地 往前走, 所以 最後就 變成 了 工業界 標準, 到 90 年代 的 時候 就 真的 是 變成 了 工業界 標準 了 所以 說
他們 當時 的 問題 被 工業界 認為 還是 沒有 什麼 實用 價值 的 只 不過 他們 這個 panel 想 了 一個, 並且 吹 得 很大, 瑞 的 01234567 都 是 吹 出來 了 那 他們 是 怎麼 解決 這個 問題 呢? 就是 說 假設 我們 有 多塊 硬盤 我們 要 多塊 硬盤 顯得 像 一塊 硬盤 一樣 是 怎麼 解決 這個 問題 呢?
其實 這裡邊 就是 說 有 很多 種 不同 的 一些 技術 細節 了 但是 你 可以 最 簡單 的 想像 就是 這裡邊 最經典 的 一種 做法 就是 說 使用 一種 編碼 的 方式 然 後 使得 你 的 數據 能夠 放到 不同 的 硬盤 上面 去 這樣子 的 話 如果 有 一塊 硬盤 掛掉 了 那麼 你還 可以 從 其他 的 硬 盤裡 面用 你 之前 的 這個 編碼 把 你 掛掉 的 數據給 恢 復 出來 然后 你 不用 去 买 很多 个 数据 比如说 你 如果 是 最 简单 的 去 想 的话 就是说 那 我 为了 保证 我 的 这个 数据 能够 在 棋盘 挂 着 的 情况 底下 能够 恢复 那 我 可能 是 需要 两块 硬盘 或者 多块 硬盘 复制 对 吧 这 是 一种 最 基本 的 这 其实 也 是 在 RAID 整个 这套 话语 体系 里面 的 其中 的 几种 但是 它 有 一种 方法 就是 通过 编码 的 方式 使 你 不要 去 花 那么 多 的 代价 而 就 可以 把 这个 数据 给 编码 保存 出错 的 时候 恢复 出来 我们
这个 盘 为什么 会 挂掉 呢? 或者说 我们 为什么 要 在意 挂掉 呢? 比如说 我 有 一个 笔记本, 我 的 盆 挂掉 首先 很 不 经常 发生 嘛, 对 吧?
这个 我 就 不 同意 啦, 你 买 的 移动硬盘 里面, 在 过去 的 时候 你 买 的 移动硬盘 里面 从来 没有 挂掉 过 吗?
你 想 陈老师 就是 因为 在 修 异性 硬盘 的 时候 发生 这么 大 的 事件
不是, 但是 我要 怕 掛掉, 我 可以 備份 啊, 對 吧?
對 啊, 這 就是 這個 問題 啊, 如果 是 你 備份 的 話, 那麼 你 只是 可能 是 把 這個 文件 給拷到 了 一個 新 的 硬盤 上, 這個 時候 你 花 的 這個 代價 其實 是不是 兩倍 的 容量 去 存 了 一倍 的 這個 數據, 對 不 對?
就 相當 於 這個 RAID 這個 系統 就是 好像 反正 你掛 了 幾塊 硬盤 嘛 你 就 可以 互相 備份 的
感覺 對然 後 它 通過 一種 方式 當然 這是 RAID 裡面 的 一種 啦 就是 比較 高級 的 所以 通過 一種 編碼 的 方式 使得 你 不用 花到 兩倍 的 這個 數據 就 可以 把 你 的 數據 能夠 以 同樣 的
可靠性 保存 下來 哇 這個 很 神奇
啊 看來 那個 時候 硬盤 是 挺 貴 的 所以 大家 覺得 只要 不是 兩倍 稍微 減少 一點 也 是 很
有 很大 的 價值 现在 也 挺 贵 的 我们 都 觉得 硬盘 很 贵 所以 说 他 要 解决 的 问题 就是说 硬盘 都 是 有 可能 会 挂掉 的 挂掉 之后 呢 我们 要 我们 的 数据 还 还有 能够
恢复 回来 还 没有 丢
而且 可以 硬盤 它 把 這個 同樣 一塊 硬盤 比如 說 數據 拆散 到 了 多塊 硬盤 之上 這陣列 嘛 放在 了 陣列 之上 之 後 的 話 你 可以 多塊 硬盤 的 這個 吞吐量 去 拿 這樣 的 話 你 的 這個 拿到 的 數據 也 就 會 更 多 更 快 對 不 對 在 單位 時間 裡面 實際上 這個 在 早期 的 時候 對 於 很多 高性能 計算 對 於 這個 科學計 算是 一個 非常 重要 的 一個 指標 它 能夠 以 比如 說 你 做 荷包 的 模擬 啊 或者 很多 他们 这个 时候 都 是 需要 一种 特殊 的 定制 化 的 一些 存储 或者 文件系统 能够 保证 他 所 需要 的 这个 吞吐量 所以 这个 其实 还是 非常 有 这个 工业 的
现实意义 就 相當 於 當時 可能 就是 更 先進 更 快 的 存儲介質 還沒有 出現 他們 就 提高 當前 的 存儲介質 的 方法 就是 相當 於 就是 同時 能夠 從 多個 硬盤 一起 來讀 這個數據 並行 對 並行化 這個 我們 說 一個 編碼 說 的 非常 神乎 能 不能 大概 給 大家 舉個 例子 大概 編碼
是 個 怎麼 回事 隨便 舉個 例子
怎麼 能夠 這麼 神乎 最 簡單 的
編碼 方式 能夠 保證 從 一個 錯 誤裡面 恢 復 的 方式 叫做 譯或 大家 知道 有 一種 操作 叫做 XOR 中文 翻譯 叫做 譯或譯 或 其實 就是 說 你 可以 認為 它 是 一種 變成 了 一種 加, 0 亦 或 1 等 於 1, 亦 或 1 其實 變成 了 0, 因為 1 出 了, 然 後 0 亦 或 0 還是 0, 在 這種 情況 底下 的 話, 它 其實 就是 一種 可以 通過 這種 非常 神奇 的 一種 位操作, 能夠 做 這樣 一個 編碼, 恢复 一块 错误 是 最 简单 的 而且 这个 其实 是 非常 快 的 现在 的 计算机 都 可以 非常 快 的 去 实现 这样 的 一些 操作 那 听 上去
这个 RAID 就 很 合理 现在 就 变成 了 说 我们 有 多块 硬盘 它们 中间 又 挂 了 之后 我们 又 能够 恢复 然后 同时 它 吞吐量 又 是 单个 的 超级 倍 那么 这 不是 挺 好 的 吗 为什么 到 后来 又 变成 合汇 去 了
呢 對, 這個 其實 就是 非常 有意思 的 一個 事情 在 這裡邊 就是 不得不 提到 谷歌 了, 就是 谷歌 就 出場 了 在 20 年初 的 時候, 谷歌 是 連續 發 了 三篇 論文 這 三篇 論文現 在 被 認為 三架 馬 車嘛 就是 Google 文件 系統, BigTable 和 MyProduce 這 三篇 文章 如果 大家 現在 是, 特別 是 計算機 專業 的 畢業生 我 估計 應該 是 都 會 看過
這 三篇 論文 吧 我們 上次 已經 吐槽過 了 MapReduce 這次 我們 來 說 Google 文件 系統 Google 文件 系統 就是
說 在 Google 還在 它 年幼 的 時候 它 有 海量 的 數據 它 把 整個 網絡 互聯網 上 的 這些 網頁 都 抓 了 下 來 它 要 做 索引 做 網絡 的 排名 所以 它 要 把 這個 系統 的 數據 都 抓 了 下 來 那 這 就是 一個 海量 的 數據 我 怎麼樣 能夠 把 這個 數據 能夠 第一 是 存下 來 第二 是 說 我 能夠 在 需要 用 的 時候 以 一種 很 高 的 一種 服務 的 效率 能夠 用 就是 把 這個 因為 不停 地要 去 重新 計算 去 計算 這個 排名 對 吧 所以 這個 裏 面 的 話 就 有 很大 的 一個 挑戰 而 這 裏 面其實 也 有意思 是 最早 的 時候 谷歌 的 就 大家 知道 有 bigtable 這樣 一個 系統 對 吧 但 其實 在 bigtable 之間 還有 一個 東西 叫做 bigfiles 那個 是 谷歌 的 創始 人 寫 的 因為 他們 在 Stanford 的 時候 念書 的 時候 寫 了 Bigfiles 就是 為 了 存 這些 所有 的 數據 你 可以 認為 它 是 一個 變相 的 文件 系統後來 是 被 吐 槽 寫 得實 在 是 太差 了 所以 就 重寫 那 肯定 不是 公認 的 差以 當時 谷歌 的 那 波後來 那 波特 別牛 逼 像 JeffDean 這樣 的 一些 功臣 大牛 的 角度 來 說 寫 得 不夠 好 所以 他們 就 重寫 了 GooglefilessystemGooglefilessystem 的 作者 之一 就是 JeffDean 然後其實 這個 東西 的 一個 初衷 就是 說 不想 用 RAID, 因為 這個 東西 如果 是 存 那麼 大量 的 數據 的 話 用 不起, 至少 在 當時
是 一個 … 為 什麼 呢, 你
多 買 塊 盤 不 就行了 當時 後 90 年代 的 時候 RAID 已經 變成 了 工業界 標準 以 後 很多 不同 的 厂商 都 是 在, 先说 80 年代 的 时候 很多 人 在 吐 槽, 工业界 吐槽 说 我 一块 硬盘 我 就要 卖 肾 了, 我 身上 没有 那么 多 肾 可以 去 卖, 弄 一个 磁盘阵列, 对 不 对? 结果 到 了 90 年代 的 时候, 大家 都 开始, 像 军备竞赛 一样 就 开始 把 這個 東西給 堆起 來 了 而且 是 說 做成 一個 一個 的 設備 去 盒子 去 弄然 後 這樣子 的 話 就 直接 你 買 這樣 一個 設備 它 就是 背 後 就是 一個 容易 的 磁盤 陣列 能夠 有 很 高 的 數據 吞吐 而且 有 很 高 的 容錯 的 這樣 的 一個 能力 那麼 這個 東西 它 就 變成 了 一個 硬件 一個 solution 一個 會 是 一個 很 貴 的 一個 東西 對 於 谷歌 有 這麼 大海 量 的 一個 數據 的 一個 公司 來 說 特別 是 一個 初創 公司 來 說 那 時候 還是 初創 公司
它 確實 是 貴, 之前 的 吐 槽 是 對 的, 它 就是 確實貴
但是 它 貴並 不是 因為 硬盤 貴 是 吧, 是 因為 那些 公司 收 了 好多 額外 的 錢 是 吧
你 把 任何 一個 東西 做到 它 是 productionready 的 話, 其實 背後有 很多很多 的 工作 因為 這個 事情 GarthGibson 跟 我們 提過, 你 可能 20% 的 代碼 就 可以 完成 80% 到 90% 的 工作 了 這沒 問題, 很 容易 寫, 可能 研究生 就 可以 寫 完 但是 你 真正 要 處理 的 是 說 在 工業界裡 面會 出錯 的 那些 小 概率 的 事件 你 把 這個 東西 做到 一個 能夠 在 生產 環境 當中 使用 那個 是 靠 時間 和 人力 成本 去 達 出來 的 那個 確實
成本 做出 來 是 不 容易 的
所以 說 要 那些 存儲廠 商 啊, 像 什麼 惠普 啊, IBM, EMC 那時候 有 EMC 嘛, 那些 公司 就 專門 賣 這些 存儲 的, 賣 的 非常 非常 貴是 吧 就 相 對 而言 比較 貴 了, 比盤 貴得 多。 不是 說 我 這裡面 有 三個 盤, 我 就是 把 一塊 硬盤 乘以 三 的 這個 價格, 那樣 的 話 就 不是 這麼 做生意 的。 它 這種 設備 其實 是 整機 賣 設備 就 會 比 它 的 硬件 成本 要 高 很多, 因為 它 很多 研發 成本 藏 在 裡面, 而且 本身 它會 比 較 高 的 一個 Premium, 會有 一個 溢價 在 這裡面。 然 後 這種 情況 底下 就是 在 谷歌 他 用 不起 或者 是 不想 走 這種 方式 去 做 所以 那時候 他 正好 又 有 一幫 像 JeffDean 這樣 的 一些 天才 工程 師在 這塊 他們 就 想 了 一個 另闢 蹊徑 其實 是 開 了 一個 腦洞 了 就是 這個 腦洞 是 說 那 我們 就 用 這個 容易 出錯 的 硬盤 但是 我們 走量 啊 我們 智 不行 我們 走量 唄 我們 玩 這個 盤海 戰術 一块 不行, 我们 就 堆 三块, 只要 是 三块 里面 有 两块 挂 了, 还有 一块 活着 还 能 用, 这个 数据 就 不会 丢 然后 就 使用 海量 的 铺量 的 方式 去
做 这个 时候 我 觉得 有 一个 非常 有意思 的, 你 可以 听 出来 的 一个 环境 的 变化 因为 当初 分布式 磁盘阵列 出来 的 时候 硬件 是 很 贵 的 就是 大家 会 觉得 一块 硬盘 这个 东西 本身 就是 超贵 所以 我们 要 好好 的 小心 的 去 使用 它 然后 能用 的 好 同时 的话 发明 一些 编码 我要 保证数据 的 完整 的话 我 不要 一比 一 的 去 多 买 一块 硬盘 现在 大家 思路 变 了 说 硬盘 好 便宜 我们 就 买 一些 比较 垃圾 的 硬盘 多买 一点 就 好 對
的, 實際上 這個 地方 也 是 有 一個 硬件 的 歷史 趨勢 不是 說 到 了 20 年 的 時候, 這邊 的 人 就是 一下子 比 以前 聰明 了 很多 而是 說 真的 是 硬件 的 環境 和 軟件 的 環境 都 發生 了 很大 的 變化
大概 他們 是 怎麼 做 的 呢, 聽 上去 很 厲害 啊, 自己 隨便 寫 了
一個 就 寫 出來 這個 的 話 有 興趣 的 話 可以 去 看 一下 谷歌 的 這個 不管 你 是, 只要 你 是 計算機 專業 的 其實 不管 你屬 於 什麼 的 我 都 非常 建議 你 去 看 一下 谷歌 的 文件 系統 的 這篇論 文它 裡面 開始 就 開門 見 山 的 說 了 我們 的 目標 就是 說 使用 這種 相對 而言 比較 平庸 不是 說 真的 很差 很 差 的 就是 這種 山寨 的 硬盤 不到 那個 程度 就是 說 相 對 而言 不是 這種 專用 的 專業 的 硬盤 的 這種 方式 然後讓 他 可以 去 這個 集群 裡面 可能 是 一個 很大 的 集群 然後每個 機器 上面 都 有 很多 塊 這樣 的 一個 硬 盤然 後 把 整個 集群 裡的 這個 機器 它 的 能力 給組合 起來 這就 回到 了 我們 所 說 的 分 佈 式 這個 概念 裡面 去 這是 一個 分 佈 式 的 系 統然 後 在 谷歌 當時 的 環境 裏 面 你 看 這 篇文章 他們 要 處理 的 文件 都 是 非常 非常 的 大 每 一個 文件 都 很大 那麼 這個 文件 他 也 不 希望 他 都 放在 一個 機器 上面 而是 說 把 它 通過 一種 邏輯 上 分塊 的 一種 方式 在 邏輯 上 把 它 分成 了 很多 小塊 每個 塊 可能 是 64 兆然 後 呢 這個 小塊 這個 邏輯 它 其實 每 一塊 都 是 有 三份 三個 副本 放在 三個 不同 的 機器 的 三個 不同 的 硬盤 上面 同時 呢 這一個 文件 的 很多 個 邏輯 塊 它 是 打散 在 各個 具體 的 整個 資源 池裡面 的 所以 每一個 文件 每個 文件 都 會 分成 很多 塊 每個 塊 它 都 有 三個 副本 然後均 勻 的 撒 在 這個 資源 池裡面 這是 一個 最 粗 淺 最 粗 淺 的 一種 想法 就是 它 通過 這種 方式 把 這個 相 對 比 較 便宜 的 硬 盤給 組合 起來 同時 可以 讓 你 得到 很 高 的 這個 吞吐量 以及
是 容錯 所以 它 這個 文件 很大 啊 要 分成 64 兆 的 塊 每 一個 分三 副本 他們 這個 文件 很大 而且 他們 好像 不僅 是 做到 了 便宜 他們 還並 不是 一個 傳統 意義上 的 文件 系統 他 文件 系統 能夠 做 的 事情 還 更是 要少
一些 是不是 對, 這個 其實 在 谷歌 文件 系統 這篇論 文裡面 也 專門 有 提過 他們 早期 的 時候 也 是 想要 實現 成一個 跟 我們 比如 說 標準 的 這種 Linux、 Unix 文件 系統 類似 或者 是 完全 一樣 的 這樣 一種 寓意 但是 後 來 發現 我 在 谷歌 底下 我 面对 的 这些 需要 去 服务 的 应用 来说 它 并不需要 很多 这些 功能 这 一点 的话 其实 特别 说 的 一点 就是说 这个 文件 在 你 自己 的 机器 上面 本 机 上面 单机 笔记本电脑 上面 你 可以 打开 一个 文件 然后 修改 其中 比如说 从 第 10 个 字节 开始 修改 20 个 字节 这种 操作 是 完全 没有 问题 的 本机 文件系统 一般 都 是 支持 这种 叫做 本 机 修改 隨機 寫 這個 叫做 術語 但是 在 谷歌 的 環境 底下 的 話 它 不 存在 這樣 的 一個 需求 或者 說 這個 需求 是 可以 被 規避 掉 的 就
不 可以 隨機 寫, 那 可以 怎麼
寫 呢 我 可以 追加, 一個 文件 系統, 這個 文件 已經 寫 好 了 以 後 我 可以 往裡面 添加 在 尾巴 上面 可以 添加 新 的 一些 數據, 這個 是 沒 有 問題 的 但是 我要 回溯到 其中 之前 某一個 文件 的 開端然 後 重新 去 把 它 之前 的 數據給 覆蓋 掉 這個 的 話 其 實並 不是 一個強 需求 吧, 或者 說 可能 沒有 這樣 的 一個 需求 所以 在 這種 情況 底下 他們 把 這些 比 較 偏 或者 說 可能 不 需要 的 這些 功能 就 沒 有 去 實現 了 而且 針對 其他 的 一些 功能 又 做 了 一些 相應 的 增強 所以 這個 時候 它 就 已經 分化 出來 像 谷歌 文件 系統 它 就 已經 和 這個 本地 的 文件 系統 它 這個 接口 就 已經 是 不 一樣 的 了 它 不是 一個 兼容 的 這樣 的
一種 實現 就是 說 他 做 了 一些 簡化 就是 你 寫過 去 的 數據 就 不能 改 了 你 要 改 的 話 就 文件 刪 了 重新 寫 一遍 大概 就是 這樣 對
但是 可能 Google 它 需要 做 一個 日誌 那麼 日誌 的 話 相當 於 是 一份 一份 的 歷史 它 也 不會 去 修改 歷史 它 只會加 一下 說 今天 發生 了 什麼 事情 然後一個
加上 去 完全 就是 這個 樣子 當時 的 時候 這些 數據 很多 就是 要麼 就是 日誌 或者 是 在 某個 歷史 版本 的 某 一些 這些 從 網上 抓來 的 這些 數據 啊 什麼 的 它 沒 有 必要 去 做 這個 修改 因為 日誌 的 話 它 也 是 永遠 不要 去 改 的 这里 我 说 一下, 日志 不是 永远 不 需要 去 改 的, 实际上 我 加入 谷歌 的 时候, 我 做 的 这个 工程, 就是说 怎么样 去 修改 日志, 是因为 一些 欧盟 的 隐私 的 要求, 决定 了 你 比如说 有些 人 他 之前 的 访问 记录, 如果 这个 人 决定 要 把 这个 数据 给 删掉 了, 那么 我们 必须 从 日志 层面 就 把 这个 数据 给 清除 掉。
其实 我们 说 到 这个 谷歌 文件系统 啊 就是 我们 这代人 其实 是 对 这个 东西 耳熟能详 啊 但是 其实 我们 发现 新 一代人 新一代 学 计算机 的 这些 新 的 人 其实 可能 人 并 没有 听说 过 这件 事 但是 对于 他们 来说 耳濡目染 的 一个 系统 叫做 HadoopHDFS, 那 這個 Hadoop 和 Google 文件 系統 的 關系 是 什麼 呢
其實 Hadoop 它 直接 就 把 自己 的 定位 就是 說 我 讀 了 Google 的 文件 系統 這篇論 文以 後 我 受 它 的 啟發然 後 因為 這個 系統並 不是 開源 的, 所以 我用 Java 或者 是 用 這些 開源 的 這種 社區 的 這種 運作 方式 把 它 可以 重新 實現 的 文件 系統 叫做 Hadoop 分 佈 式 文件 系統
就算 是 山寨 版 嗎 對然 後
這裡 有 特別 有意思 的 就是 我 記得 我 看 可能 不是 GFS 了, 但是 可能 是 MapReduce 什么 的 我 就 看到 这个 其实 是 一个 Google 的 专利 他 那个 论文 里面 直接 就 写 了 MapReduce 就是 一个 Google 专利 但是 呢, 开源 社区 还是 把 这个 东西 给 删掉 了 出来 只是 说 Google 他 没有 去 选择 去 使用 它, 去 维权 誒 說 起
這個 呀 范斌 和 這個 Hadoop 文件 系統 還是 有 一些 緣分 的 啊 范斌 當初 是 發表 了 一篇 論文 啊 在 CMU 的 時候 是 在 Hadoop 文件 系統 上面 實現 了 RAID
是 吧 對 聽 上去 邏輯 好
繞 啊 怎麼 又 回來 了 這個
在 我 看來 啊 至少 對 於 我們 公司 的 HDFS 的 部署 來 講是 個 里程碑式 的 文章 我們 先來 介紹 一下 大概 是 怎麼 回事 啊
這個 其實 又 是 回到 了 差不多 是 在 208 年 的 時候 我 和 在 CMO 的 幾個 同學 一起 就是 選要 上 應該 是 操作 系統 的 課然 後 我們 就 決定 要 寫 操作 系統 的 課然 後 我們 決定 要 寫 一個 當時 這門 課 是 GusGibson 又 回到 他 了, 又 是 他 教 的 瑞 的 發 明人, 然後呢 我們 就 想要 選題, 就是 要 做 一個 跟 美國 這邊 的 研究生院 裡面 的 操作 系統 課, 特別 是 高等 研究生院, 就是 叫 advancedoperatingsystem 的 話, 它 一般 會有 一個 讀 paper 和 做 項目 這兩個 部分 嘛, 然后 在 做 项目 的 这个 部分 里面 的话 我们 就 在 讨论 就是说 HDFS 它 因为 是 就是 Hadoop 的 文件系统 它 是 山寨 了 谷歌 的 这个 论文 然后 用 了 这个 三 副本 然后 偏 硬盘 这样 那些 概念 其实 完全 是 一样 的 那么 这个 时候 我们 如果 还 想 进一步 的 能夠 減少 磁盤 的 使用量 因為 你 原來 三富本 的 話 就是 20% 的 冗餘 了 能 不能 使用 RAID 這樣 的 一個 概念 就是 使用 編碼 這樣 的 一個 方式 使得 這個 計算機 在 你 使用 這個 HDFS 的 時候 不要 有 那麼 高 的 存儲 的 overhead 然後把 這個 成本 給 降下去 這個 是 當時 的 一個 出 發點 然後剛 好 Garth 是 做 了 這個 RAID 的 發明 他 就 特別 高興 就 特別 鼓勵
我 聽 上去 你們 就 這麼 像 拍馬屁 這是 投其所好 我 的 RAID 現在終 於 有 年 輕人來 繼承 我 的
一波 他 當時 真的 就是 這麼 感覺 的, 就是 說 這個 是 一個 新 時代 的 RAID 他 之前 做過 的 D ClusterRAID 更 多 的 是 在 高性能 計算 的 這種 環境 底下 然後在 磁盤 陣列裡面 排列 但是 那個 時代 的 話, Hadoop 或者 是 大數 據 是 一個 非常 火熱 的 其實 可能 火熱 程度 不亞 於 現 在 的 AI 在 07 年 08 年 09 年 的 那個 時候
是 的, 我 可以 負責 的, 雲計算 整個 這套 是 非常
的 火 所以 能夠 把 他 在 幾 十年 前 的 時候 陳 明作 的 思想 複 製 到 一 個 新 的 火 熱 的 戰 場 裡 面 他 就 非常 高興 了, 非常 鼓勵 我們 一起 做 這個 工作 所以 後 來 得 了 A 嗎 我 不 記得 了, 可能 考試 考得 不是 很 好 吧
所以 在我看来 这个 确实 是 一个 作为 论文 来说 是 个 里程碑式 的 论文 因为 那个 时候 就 像 范冰 说 的 Hadoop 是 存 三个 副本 的 就是 每个 数据 都 是 复制 三份 放到 三台 机器 上 但 现在 几乎 所有人 都 是 在 用 RAID 的 这种 方法 用 编码 的 方法 不是 三份 比如 是 一点几 一般 都 是 一点几 的 方法 比如说 你 是 十份 比如说 十份 他们 的 论文 的 数字 是 十份 这个 论文 是 十份 吗 大概 比如说 十份 这个 数据 然后 四份 校验码 四份 校验码 这样的话 就是 提供 一定 程度 的 这个 冗余 这个 现在 已经 是 基本上 是 工業界 的 標準, 主要 公司 幾乎 所有人 都 是 這麼 做 的, 而 第一次 在 公開 場合 發表證 明片 論文 的 是 范斌。
對, 當時 還有 一個 特別 有意思 的 事, 就是 遇到 跟 Garth 一樣 的 境遇, 就是 說 被 工業界 的 人給 challenge 了, 當時 的 我 記得 很 清楚 應該 是 NetApp 的 一個 人, 來 我們 學校 參觀 我們 的 研究成果, 我們 每年 會有 兩次, 叫做 這個 學術 成果 公開 日 吧, 類似 於 這樣子 的, 然 後 就是 每個 人會 介紹 做 一個 海報, 這海 報裡 面介紹 一下 自己 做 的 這個 研究 的 一些 工作, 然後記 得 很 清楚 是 一個 NetApp 的 工程 師。 可能 是 這個 頭銜 還挺 高 的 一個 工程 師跑 過來 看到 了 以 後 就 就 像 看到 了 一個 笑 話 就 說 我 怎麼 可能 會有 這麼 好笑 的 一個 笑 話 說 你 的 HDFS 整個 這 思想 就是 說 因為 磁盤 足夠 便宜 了然 後 所以 我們 才 用 這種 簡單 那種 簡單 而 優 美的 一種 方式 使用 三個 副本 去 存然 後 你 們 現 在 又 倒車 又 倒 回到 歷史 了 因為 他們 覺得 瑞德 編碼 這件 事情 是 一個 非常 複 雜的 概念 就是 說 你 們 怎麼 可以 整個 時代 已 經變 了 倒行逆施 你們 做 了 這個 工作 就 會 被 掃進 歷史 的 垃圾堆 對 不 對 所以 這個 事情 我 當時 就 聽 了 以後特別 的 難過 所以 你
打 他 了 嗎?
然後就 把 這個 故事 跟 當時 其他 的 工作 合作 人 還有 包括 Garth 去 說 了 一下 Garth 聽 了 以 後 就 哈哈大笑 跟 我們 說 他 當時 做瑞 的 時候 也 是 被 在 工業界 的 一些 工程 師這樣 去 挑戰 他 然後後來 就是 說 這些 人 他 其實 回去 以 後 很多 人 他 回去 以 後 第一件 事是 先 在 這個場 合裡面 嘲笑 你 然後緊 接著 回去 以後他 會 回去 寫 一個 proposal 然後開始 做 這件 事情 就是 我
就算 餓 死 也 不會用 你 們 的 分 佈 式 磁盤 陣列然 後 就 爭相 結果 回去 之 後 所以
我 這裡 其實 就 想 說 一下 就是 很多 學術 一些 研究 可能 在 當時 那個 環境 底下 可能 确实 是 有点 超前 或者说 是 其实 是 比较 让 人 觉得 不切实际 啊 什么 的 但是 有 的 时候 时代 的 发展 是 非常 的 快 的 你 过 了 其实 不过 很久 就 过个 三五年 然后 整个 环境 就 变 了 然后 一下子 就 发现 其实 可能 当时 想 的 这个 问题 或者 这个 解法 其实 就是 对 的 只是 说 我们 需要 有 这个 勇气 去 想 的 远
一点 我 可以 正视 这 一点 至少 我 当时 在 我们 公司 的 Hadoop 组嘛 因为 这个 事情 其实 确实 就是 我们 组 的 人 看到 这篇 论文 觉得 这是 一个 非常 好 的 一个 主意 并且 就 真的 就 真的 按照 这个 实现 方法 实现 了 那 大概 还是 在 早期 的 时候 那 现在 已经 是 新一代 系统 了 另外 一 回事 了 但 那个 时候 几乎 就是 用 同样 方法 实现 的 并且 這個 叫 什麼, 省 了 很多很多 的 錢,
非常 重要 所以 剛才 說 這種 方法 就是 一種 新 時代 的 分 佈 式 磁盤 陣列 那麼 跟 老一代 的 磁盤 陣列 相比 他們 的 區別 就 在 於 新 的 一代 可以 支持 更差 的 那些 磁盤 來 做 這樣 一個 事情 嗎?
這個 其實 可能 是 一個 比 較 次要 的 一點 就是 說 當然 實際 上 在 真正 的 工作 當中 比如 說 像 Facebook 你們 肯定 也 不會 去 買 很 差 的 硬盤 還是 會 去 買 相 對 而言 比較 好 的 但 只是 說 不 像 以前 那樣 他 是 把 這個 做成 一個 硬件 做成 一個 很多 個 硬盤 放到 一個 櫃子裡面 一個 鐵櫃子 上 賣給 你 這個 鐵櫃子 或者 一個 鐵 盒子 現在 的 新 的 這套 系 統裡面 的 話 就是 一個 機房 這個 機房 裏 面 可能 是 幾百 臺 幾千 臺 的 機器 這些 機器 它們 是 通過 網線 連在 一起 的 它們 組在 一起 組成 一個 邏輯 上 的 文件 系統 這其實 就是 一個 分 佈 式 的 文件 系統 裏 面具 體的 比如 說 到底 是 使用 三 副本 還是 使用 一個 編碼 的 方式 來 保證 它 的 踴躍 這是 具體 的 實現 也 可能 是 一個 其實 就是 可能 很 簡單 的 一個 配置 選項 現在
的 實現 方法 其實 更 像是 就是 原始 的 RAID 我 看范冰 那篇論 文當時 還是 做 了 很多 的 折衷 在 那個 時代 在 那個 是 網絡 還沒有 那麼 快 的 時代下 其實 是 一個 很 好 的 折衷 更 不 像 當年 的 RAID 但現 在 其實 大家 分不出 做法 更 像 當年 的 RAID
然 後 很多 時候 RAID 的 最大 的 一個 挑戰 就是 說 我 真的 是 在 生成 數據 或者 是 讀取 數據 的 時候 怎麼樣 能夠 保證 這個 數據 能夠 跟得上 包括 編碼 能夠 跟得上 而且 很 重要 點是 出錯 的 時候 你 怎麼樣 能夠 能夠 恢 復 出來 所以 這個 其實 是 一個 很大 的 一個 挑戰 但是 現在 也 是 說 Hadoop 的 這些 整個 社區 的 人 他們 是 非常 勇敢 的 就是 說 去 挑戰 這樣 的 一些 邊界 條件 吧 所以 其實 是 在 Hadoop3.0 的 時候 是 推出 了 使用 的 這種 更 多 像 傳統類 的 這種 使用 方式 去 生成 數據 的 榮譽 和 備份 這樣 的 一種 方式 然後現 在 Hadoop3.0 裡面 的 話 這個 已經 是 一個 很 常用 的 一個 功能 了 顺便
说 一句 啊, 范斌 的 博士论文 不仅 有 这 篇文章 是 李承碑 式 的, 作品 啊 还有 很多 诸如 像 口库 hash 这种, 口库 filter 这种, 相当于 是 口库 filter 这种 也 是 现在 这个 学 这个 电脑 的 人 大家 都 知道 非常 重要 的 数据结构 啊 还有 包括 像 皮 特人 合作 的 一些 当年 做 这个 闪存 的 这个 存储 的 这个 数据库 的 先驱 啊 有 很多 都 是 非常 厉害 的 非常 厉害 的 作品 这里 我 先 说
一下 刚才 说 的 HDFSRAID 这篇 论文 其实 我们 并 没有 真正 的 发出 去 没有 真正 的 发表 出去 我们 是 发在 了 一个 workshop 上面 去 那 是 一个 短 论文 之后 我们 其实 是 写 了 一篇 长 论文 是 想要 发出 去 的 结果 后来 因为 头 的 那个 会议 是 一个 顶级 会议 他 要求 是 一个 双盲 我們 就 把 自己 的 名字 給 去掉 了然 後 同時 把 系統 的 名字 也換 了 你 投 的 時候 要換 一個 名字 結果 我們 得到 了 一個 評價 是 說 你 做 的 這個 工作 CMU 有 一個 組 已經 做過 了 所以 就是 我們 自己 因為 當時 已經 發過 了 一個 workshop 的 論文 所以 最後我們 就 沒 有 發
的 出去 就是 我 山寨 我 自己
我 被 我 自己 給擋 住 了 擋 住 前進 的 一個 道路 我
記得 你 看 那些 會議 上經 常有 頒獎論 文什麼 十年 最有 影響力 論文 這樣 的 頒獎 經常 那個 作者 上去 說話 的 時候 就 說 我 這篇論 文 被 什麼 什麼 什麼 拒過 我 還記 得 那個 李凱 上次 說 他 那篇論 文說 他 還說 我 還記 得 我 之前 被 拒 的 一個 評語 是 說 很 明顯 他 是 抄襲 了
李凱 的 觀點 對 這裡 說 一下 李凱 是 普林斯 頓大學 的 一個 計算 機器 的 一個 鎮店 之 寶 這樣 的 一個 教授 了 他 之前 的 時候 做 了 很多 工作 但 其實 在 工業界裡面 很 有名 的 是 因為 他 做 了 一個 叫做 datadomain 这样 一个 公司 然后 这个 公司 也 是 做 存储系统 的 然后 它 的 卖点 是 说 我 可以 把 很多 数据 在 人类 的 在 大家 的 使用 电脑 上面 或者 是 在 工作 当中 发现 了 大量 的 重复 数据 那么 我 其实 可能 你 这里 有 一份 在 你 的 什么 学习 杠 不 重要 杠 什么 什么 里面 有 一个 文件 实际上 可能 跟 我 的 在 学习 C 宝典 这块 的 文件 其实 是 同一个 文件 对 吧 然後其實 我 就 只要 在 背後存 一份 就行了 然 後 這就 變成 了 一個 符號 這也 是 一個 經典 的 里程碑式 的 工作 然 後 最後變 成一個 公司 最 後 也 是 被 收購 非常 成功 是
先 被 拒 了 一段 其次 才 中 的 一篇 paper 所以 原來 這麼 重要 的 一篇 paper 原來 並沒有 被 會議 接受 過我們 說 了關 於 谷歌 的 文件 系統 之後說 了 這麼 多 那 我們 下 一個 趨勢 是 什麼 呢 在 我們 分 佈 式 文件 系統 叫 谷 歌式 的 文件 系統 包括 它 的 延伸 之 後 那 下 一個 趨勢 是 什麼 呢 對,
我們 現在 看到 的 是 說, 我 這麼 說 一下 就是 在 上 一個 十年 工業界 的 Hadoop 這個 系統 或 這套 生態 非常 的 厲害 它 在 201 年 左右 基本上 就是 確立 了 它 工業界 的 標準 的 這樣 一個 地步 實際 上 往 後 的 話, 如果 你 是 使用 大數 據 的 話 Hadoop 這個 文件 系統 的 接口 它 就 成 了 一個 事實 上 的 一個 標準 而且 它 實現 的 包括 整個 社區 的 參與度 都 是 非常 的 高 也 是 對 大數據 這個 概念, 因為 通過 開源 這種 方式 把 大數據 這個 概念 給 普及 了 是 功德 無量 的 一個 東西, 是
非常 厲害 的 對, 這個 東西 就是 說, 接口 很 厲害 這是 非常 重要 的 一件 事情, 比如 說 當年 那些 做 雲 的 廠商 啊, 不管 是 微軟 還是 誰 啊, 他們 內部 肯定 有 比 Hadoop 實現 的 厲害 多 的 文件 系統, 但是 你 不得不 在 上面 再 做 一層, 做 一個 實現 Hadoop 非常 爛的 介面。 這裡面 其實 最 尷尬 的 是 Google, 因為 Google 發表 了 那 三篇 論文以 後,
對 我 是 祖師爺 啊 但是 當時 他們 並沒有 把 這幾樣 東西 開源 而是 選擇 了 停留 在 一個 論文 當然 這幾篇論 文實 在 是 太 厲害 了 所有人 都 會 拜 讀然 後 也 引起 了 整個 巨大 的 生態 產業 就 被 他 拉 起來 整個 Hadoop 其實 就 靠 這幾篇 論文 最早 起家 的 然後到 了 最後到 了 比如 說 201 年前 後 的 時候 Hadoop 確立 了 它 工業界 的 標準 的 地位 的 時候 Google 開始 反省 過來 開始
做 雲 了
那 這個 時候 就 出現 了 一個 很 尷尬 的 事情 就是 外面 並沒有 一個 操作 系統 或者 是 說 一個 應用 是 要 去 使用 Google 文件 系統 的 也 不 知道 怎麼 去 用, 你 都 不 開源 所以 最後就 變成 了 Google 需要 在 它 為 了 推廣 它 的 這個 為 了 推廣 它 的 這個 語音 嘛 需要 在 它 的 這個系 統裡面 去 提供 跟 這個 很多 不 兼容 啊 或者 很多 這樣 的 一些 服務 雖然 它 是 主視野 但是 它 需要 跟 它 的 山寨 他 的 這些 人 去 學習 去 保證 他 的 兼容性 這個 事情 就是 非常 的 尷尬 了 我 覺得 這也 是 Google 在 我 看來 這是 Google 的 一大
敗招 一個 是 開源 的 力量 一個 是 生態 系統 的 力量 你 的 實現 怎麼樣 無所謂 但是 你 只要 夠大 那別 人 都 得給 你 的 標準
來然 後 這裡 有 說 到 我 剛才 是 說 在 201 年 左右 的 時候 這個 Hadoop 這個 分 佈 式 文件 系統 的 接口 變成 了 一個 事實 上 的 一個 工業界 的 標準 那麼 這個 事情 是不是 到現 在 還是 這樣 呢 我 覺得 這個 事情 其實現 在 越來 越 受到 了 一個 挑戰 那 就是 興起 了 一種 新 的 特別 是 以亞馬遜 為 代表 的 這種 做雲場 它 會 提供 一種 叫做 對象 存儲 的 方式 對象 就是 我們
要 結婚 的 對象 存儲 對象 在
這個 計算 機術語 裏 面其實 有 很多 意思 然 後 你 可以 認為 比如 說 C 是 一種 面向 對象 Java 是 一種 面向 對象 的 一種 語言然 後 這 裏 面 的 對象 可能 更 有點 像是 C 或者 Java 裏 面 說 的 一個 物體 指 的 就是 這樣 的 一個 東西 就是 一個
物體 object 就是 一個 東西 我 覺得
這 裏 面其實 我 要 吐 槽 一下 就是 我覺 得 計算機 很多 術 語用 中文 你 覺得 它 特別 的 高大 上 但 實際 上 你 如果 是 會 英文 的 話 你 會 發現 它 其 實用 的 是 特別 土 的 一些 詞 这 让 我
想 起来 在 美国 看 餐厅 你 看 他 的 中文 名字 特别 高级 什么 飞 龙凤 凤舞 什么 之类 的 然后 英文名字 就是 MamaTrance 我 太太 一直
用 一个 非常 非常 高大 上 的 化妆品 品称 叫做 LaMer 我 也 觉得 特别 的 牛 逼 后来 我 才 知道 这 就是 法语 的 大海 的
意思 所以 說 你 不是 很 了解 一個 東西 的 時候 往往 會有 一種 神秘感 然 後 你 一旦 是 真的 知道 它 背 後 的 意思 你 覺得 其實 也 就是 一個 非常 常見 的 一個 東西 回到 我們 說 的 對象 存儲 它 其實 就是 進 一步 拋棄 了 標準 的 文件 系統 裡面 的 很多 一些 操作, 一些 語意 但是 它 提供 了 其他 的 一些 方面 的 增強 特別 是 在 比如 說 可 擴 展性 特別 是 說 有 很 海量 的 小 文件 每一個 文件 在 這裡面 就是 一個 對象 變成 了 一個 對象 每 一個 文件 變成 了 一個 物體 那麼 你 要 有 很多 小 文件 的 情況 下 特別 是 在 現在 這個 世界 裡面 的 話 很多 AI 的 場景 它 有 海量 的 這種 叫做 圖片 或者 是 一段 一段 的 短 视频 什么 的 每个 就 变成 了 一个 对象 你 要 把 这个 东西 都 存 下来 原先 的 谷歌 文件系统 或者 Hadoop 的 文件系统 它 就 不是 一个 特别 适合 它 不 能够 处理 好 这么 多 的 小 物体 它 又 太强 了 它 还是 保留 了 太 多 的 假设 假设 人会 像 以前 使用 单机 的 文件系统 一样 去 使用 这些 数据 实际上
不是 那 样子 所以 它區別 在 哪 呢, 就是 一個 還是 有 文件, 但是 管 文件 叫 對 象是 吧 這裡面
我 就 說 一個 很 重要 的 區別 就是 在 Hadoop 或者 是 Google, 至少 在 Google 的 那個 時候, 在 Hadoop 裡面 的 話 它 是 有 一個 目錄 這樣 的 概念 的 但是 在 對 象存 儲裡面 它 其實 是 沒 有, 真正 在 實現 的 時候 是 沒 有 目錄 這個 概念 了
就 沒 有 文件 夾, 沒有 目錄,
咱們 不 說 目錄 了 沒 有 目錄 這個 概念 了, 而是 通過 一些
其他 的 方式 那 不是 就是 好 幾億個 文件 都 放在 一起 了 嗎
對, 這個 叫做 扁平 的 名稱 空間, flatnamespace 然後呢 這裡 又 回到 我 一開始 最初 說 的 就是 說 你 其實 使用 是 AWSS3 的 時候 你 好像 是 可以 看到 一個 文件 夾這樣 的 一個 瀏覽 方式 的 他 是 把 自己 包裝成 了 一個 有 文件 夾的 一個 方式 他 通過 一種 其他 的 一些 東西 對 於 你 的 對 象名 一個 建築 他 做 了 一些 猜測 如果 是 這個 樣子 的 話 我 猜測 你 這裡 其實 可能 像是 有 一個 文件 夾它 是 通過 這樣 的 一種 方式 來 讓 你 覺得 是 文件 夾但 實際 上 它 所有 東西 就是 一個 對 象然 後 拋棄 了 文件 夾了 以 後 那麼 它面 對 的 就是 一個 扁平 的 名稱 空間 在 這裡 就 可以 做出 更 多 的 一些 優化當 你 有 文件 夾的 時 候當 你 有 目錄 的 時候 就 會 有 很多 的 一些 限制 一些 優化 就 做不了 这样 我
想 起来 非常简单 就是 如果 有 目录 的话 你 可能 要 把 目录 里面 所有 的 文件 都 走一遍 你 可能 就要 就是 有 一个 变异 的 过程 但 现在 变平 之后 就 可能 就
没有 这方面 的 事情 了 扁平 了 以後其實 這個 問題 更 大 了 這個 其 實後面 我們 會 說 到 這裡面 其實 是 它 一個 局限性 你 有 得 必 有失 你 的 擴 展性 變得 很 好 了 因為 你 的 這個 原數據 服務 這個 時候 變得 非常 的 容易 操作 其實用 很多 時候 我 知道 就是 用斯 都 加勒 克 你 們 做 的 這個 RoxDB 就 可以 去 做 這樣 的 一些 事情 實際 上 很多 項目 就是 這麼 去 做 的 就是 包括 我們 Luxio 裡邊 原數 據 的 管理 其實 就是 用 的 是 這個 RoxDB 特別 是當 你 是 比 較 扁平 的 時候 這個 是
非常 適合 的 所以 說 它 實現
起來 是 更 容易 實現 起來 更 容易, 擴展 起來 也 更 容易 這 就是 使得 你 的 小 文件 這種 場景 底下 就 特別 的 適合 如果 一旦 是 你還 保留 了 像 目錄 或者 是 這樣 的 一種 樹形 結構 的 話 那麼 這裡面 其實 有 很多 東西要 保證 它 的 這個 原子 性 啊 很多 操作 原子 性 啊 什麼 的 其實 是 非常 複 雜的 因為 我們 在 Alexis 裡面 也 是 實現 了類 似的 一個 目錄 樹 這樣 的 一個 結構 啊 這裡面 是 很多 名堂 的 我現 在 正在 寫 一篇 論文 這個 其實 是 很多很多 東西 很 複
雜的 就是说 我们 因为 有 目录 啊 所以 有 很多 非常 非常复杂 的 操作 在 上面 看上去 非常简单 我 把 这个 文件 从 这个 目录 移 到 那个 目录 但 下面 可能 要 千千万万 的 人 做 非常 非常 多 的 工作 才能 把 它 做 完 并且 其他 一些 事情 可能 就 不能 做 了
特別 是當 你 的 這些 光是 你 的 原數據 就是 這些 數據 的 這些 信息 都 足夠 大 了 一台 機器 放不下 了 這個 是 很 有 可能 的 那麼 這個 時候 你 要 做 一個 目錄 的 一個 操作 一個換 名字 或者 不是 換 名字 了 從 一個 目錄 遷移 到 另 一個 目錄 那 這個 時候 就 可能 牽涉 到 數據 從 一台 機器 遷移 到 另外 一台 機器 那 這個 就是 一個 分 佈 式 的 事物 叫 distributedtransaction 你 是 做 數據庫 的 你 是 知道 這裡面 的 這個 複 雜度 是 在 哪裡 的
比如 說 S3 這個 系統 是 從 亞馬遜 出來 的 對 吧 那 他 肯定 不在乎 這種 複 雜性 但 就是 說 他 從 根本 上 說 他 獲得 了 什麼 呢 就 除了 實現 上 的 簡單 以外 這就 得到
了 一個 無窮 的 一個 擴 展性 了 啊 你 其 實亞馬遜 的 是 一個 就是 一個 S3 的 這個 桶 的 名字 就是 一個 全局 的 嘛 就是 一個 全局 的 一個 名稱 空間 你 創建 的 和 我 創建 的 其實 都 是 在 同一 個 名稱 空間 裡面 是 非常 大 的 而且 它 這個 實現 起來 它 擴容 啊 什麼 的 會 非常 非常 的 方便 然 後 另外 的 話 就是 說 對 這個 數據 的 使用 的 方式 它 也 是 一樣 的 就是 說 你 是 沒 有 辦法 做 從 中間 的 某 一個 地方 開始 覆蓋 寫 啊 所以 就是 我們 剛才 說 的 隨機 寫 啊 這些 也 都 是 進 一步 的 就是 說 簡化 了 不 支持 不 支持 然後獲 得 了 更好 的 一個 擴 展性 實際 上 對 於 大多 數的 真正 在 雲 端的 這些 應用 它 也 就是
夠了 就 真的 是 非常 夠 所以 說谷歌 的 文件 系統 是 比 我們 印象 中 的 文件 系統 是 簡化 了 一些 但是 S3 又 比谷歌 文件 系統 要 更 大幅 的 又 更
簡化 了 一些 對, 從 這個 操作 的 語意 上 來 說 是 這樣 的 而且 是 說 有些 地方 是 做 了 更 大 的 一些 取 捨 比如 說 對 於 這個 數據 的 一致性 上面 一般 來 說 你 敢 叫 自己 是 文件 系統 的 還是 要 實現 一個強 一致性 的 這個 其實 可能 稍微 有點 專業 了 但 基本上 就是 說 我 做 了 修改 以後別 人 都 能 立刻 看到 我 的 修改 我 自己 也 能 看到 我 自己 的 修改 不會 說 我 把 一個 文件 的 名字 從 張 三 改成 了 李四 結果 我 成功 了 之後別 人還 看到 一個 張三 這樣 的 名字 這就 不是 一個強 一致性 你 敢 叫 自己 是 文件 系統 的 那麼 基本上 還是 要 實現 這樣 一個強 一致性 但是 對 於 objectstore 它 很多 一些 邊角 的 case 裡面 它 其實 就 不再 它 也 拋棄 了 這個強
一致性 的 很多 東西 哦 那 這個 東西亞馬遜 這個 東西 是 獲得 了 業界
的 認可 嗎 所以 這 就是 我 說 的 我 覺得現 在 HDFS 實際 上 正在 失去 它 這個 接口 啊 正在 失去 自己 業界 霸主 的 這個 地位 而 起來 的 就是 S3 這條 接口 是 非常 的 厲害 就 基本上 新 的 廠商 他 要 出新 的 存儲 設備 的 話 基本上 都 是 要 找 一個 實現 一個 跟 S3 兼容 的 方式 去 介入 你 可以 想想 這個 多 大 的 一個 成功 同時 整個 互聯網 你 其實 可能 意識 不到 你 平時 的 時候 上 各種 各樣 的 網站 但是 有 的 時候 偶爾 啊 比如 說 這個 一些 網站 掛了 你 會 發現 其實 是 因為 AWS 出 問題 了 這個 事情 出過 幾次 就是 S3 其實 就是 S3 出 問題 了 結果 互聯 網裡面 一堆 網站 都 不能 用 了 因為 它 有 很多 這種 它 的 assets 它 其實
是 在 S3 上面 的 所以 說 S3 是 全互 聯網 的 一個 存儲 平台 那 其他 幾個 雲廠 有 沒 有類 似的 產品 呢? 就是 說
S3 的過 於 成功 導致 了 大家 其實 都 會 開始 想要 真正 的 去 研究 到底 是 什麼 樣子 的 一個 市盒 但 實際 上 最 後 大家 不約 而 同 的 也 都 是 走向 對象 存儲 也 是 因為 可能 SM 比較 深入人心 吧 像 微軟 的 話 會 做 Azure 的 Blobstore 然後谷 歌 的 話 一個 叫 GCS 他們 其實 還有 包括 騰訊 和 阿里 都 是 有 非常 類 似的 對象 存儲 的 服務 在 他們 的 雲端然 後 你 會 發現 他們 的 接口 是 非常 的 像 基本上 约定俗成 就是 这么 来, 但是 会 不 一样, 会 有 不 一样 但 基本上 就是 用法 的话, 你 会 了 一个 你 要 写 程序 转移 到 另外 一个 是 非常 的 简单 比如说 我 现在 做 的 叫做 Alexio 这样 一个 系统 的话, 它 是 提供 了 一层 数据 的 虚拟 它 底下 是 对接 不同 的 这些 云层 的 这些 对象 存储 然后 我们 就 发现 对接 的 时候 写 的 这个 对接 这个 程序 非常 的 像 基本上 这个 可能 80% 的 时候 做 的 事情 都 是 一样 的 只是 说 底下 API 的 这个 稍微 名字 换 一下 或者 是 调用 的
方式 换 一下 而已 所以 就是 S3 這個 接口 已經成 為 了 各大雲廠 一個 最 主要 的 存儲 接口 了 但
它 可能 各個 存儲廠 商不會 提供 一個 完全 跟 S3 一樣 的 只是 說 大家 在 設計 這套 方案 的 時候 或多或少 會 受到 S3 這套 方案 的 影響
所以 說 這個 物體 存儲 基本上 已經 是 佔領 世界 的 存儲 我
可以 看到 是 在 下 一個 十年 不管 是 S3 也好 或者 是 總體 而言 這個 物體 存儲應 該 會 是 一個 越來 越 流行 的 趨勢 很
有意思, 還有 一個 最近 比 較紅 的 概念, 叫做 數據湖 這個 跟 對象 存儲 或者 物體 存儲有 什麼關 係 嗎對, 這個
其實 是 有關 係 的, 或者 這麼 說 吧, 早期 的 時候 這個 數據湖 也 是 一個 挺 忽悠 的 詞數
據 湖 的 湖是 什麼, 哪一個 湖
這是 湖泊 的 湖 嗎? 湖泊 的
湖對 感覺 好 有 詩意 啊 DataLake
數據湖 就是 從 DataLake 這個 詞 翻譯 過來 的 這裡面 就是 說 首先 就是 說 美國 人起 名字 喜歡 把 這個 Lake, Bridge 還有 這幾個 詞 就是 賦予 一個 特別 美好 的 意義 就是 很多 時候 他們 特別 喜歡 跟 這幾個 詞沾邊 很多 時候 Bridge 或者 是 Lake 可能 是 大家 喜歡 住 水邊 還是 怎麼 回事 我 就 不 知道 了 所以 舒吉湖 這個 詞剛 出來 的 時候 是 一個 特別 玄乎 的 一個 詞 沒 有人 知道 它 到底 是 什麼 意義 但是 就是 突然 開始 就 火起 來 了 大概 的 意思 就是 說 我 有 一層 就是 這樣 的 一個 就 這麼 一套 東西 就 可以 讓 數據 在 不同 的 底下, 湖水 的 流動 性比 較 好 嘛 你 在 湖水 的 一個 地方 可以 撒一點 小 黃 鴨過 一會兒 這個 小 黃 鴨 可能 會 漂到 湖 的 其他 地方 那麼 這個 地方 的 話 就是 類比 於 這個 數據 像 湖水 一樣 可以 在 不同 的 地方 流動 有 的 地方 可能 深一點 有 的 地方 淺一點 但是 呢 就是 通過 一套 比較 好 的 一套 方案 可以 讓 這個 上層 的 使用者 不用 去 關心 我 這個 數據 到底 是 在 什麼 地方 或者 是 但 只要 跟 我 這個 數據 湖存 進去 就行了 這是 早期 的 時候 就是 一個 美好 的 願景 啊 怎麼 去
做 也 不 知道 這個 說 起來 非常 的 抽象 地方 是 什麼 意思 就是 說 我 這個 應用 存 一些 數據 存進 去 然後它 游到 別 的 應用 那 去 嗎 還是 我 的 應用 在 別 的 地理位置 起來 它 又 可以 讀出 來 嗎 對 這個 其實 牽 扯 到 一個 架構 的
複 雜性 的 問題 就是 在 那個 時候 很多 人扯 這個 數據 湖是 因為 后边 的 这个 整个 一套 数据 架构 越来越 复杂 了 可能 会 牵扯 到 我 这个 计算 应用 到底 是 需要 去 关心 我 是 写 到 第一个 HDFS 就 HDFSA 这个 地方 去 还是 写到 S3 这个 地方 去 还是 去 怎么 怎么 去 拿 然后 这里 边 的 具体 的 这个 数据 的 整個 一套 地圖 吧 你 需要 是 非常 的 了解 但 這個 的 話 其實 對 於 很多 數據 的 這個 或者 是 這個 架構 這個 使用 的 運行 應用 的 這些 人來 說 有 點過 高 了 或者 是 你 的 架構 做 的 不好 所以 我 是 希望 其實 就是 說 所有 的 人 都 是 往 這個 壺裡面 去 寫 這壺 裡面 到底 是 最 後 放在 哪兒 我 不用 去 管 它然 後 我 需要 去 讀 的 時候 我 就 從 這個 壺裡面 去 讀 所以 這個 的 話 就是 一個 數據壺 它 當時 的 時候 強調 的 是 這個 流動性 數據 的 流動性 我 只要 跟 這個壺 打交道 然 後 最後它 流到 哪裡 去 我 就 不用 去 管 它 或者 說 它 就 從 哪 地方 拿給 我 我 也 不用 去 管 它 所以 後 來 實際 上 在 這兩年 的 話 逐漸 的 開始 越來 越 清晰 了 這個 東西 就是 說 大部分 的 時候 大家 說 到 數據湖 或者 我見 到 的 跟 我 打交道 的 人 提到 數據 湖其實 最 後 就 很 簡單 就是 說 我 使用 S3 說 我 就是 在 使用 數據湖 把
S3 作為 數據湖 所以 S3 就是 個
數據湖 或者 類 似的 說 我們 構建 了 一套 以 阿里 OSS 作為 數據湖 這樣 的 一套 方式 實際 上 就是 說 數據 放到 ISS 裡面然 後 我
就 不用 去 管 它 了 我 聽 這個 我 聽 意思 就是 過去 有 C 盤 D 盤 E 盤太多 了 我 就 不要 盤 了 就
全都 一起 了 對 所以 這個 其實 可能 就是 最 後 大家 討論 來 去 就 覺得 還是 落地 一個 比 較 接地 氣的 其實 就是 說 我 有 一個 很 好 用 的 一套 服務 就是 S3 基本上 可以 滿足 我 所有 的 需求 了 那 我 就 把 所有 東西 都 放上去 類似 這樣 的 一個 想法 吧 不是 特指 S3 啦, 就是 說 這些 雲廠 商出 的 這些 對象 存儲 的 話 確實 是 足夠 的 好 用, 所以 大家 願意
去 使用 它然後給 了 一個 這麼 高級
的 名字 為 什麼 不 叫 大海 呢, 為 什麼 不 叫 DataOcean 呢, DataLink 呢 你 不覺 得 聽 上去
胡 就 更 有 詩意 嗎? 對, 更
有 詩意 好, 那 我們 說 到 最 後, 我們 通常 會問 某 一個 領域 的 嘉賓 兩個 問題 一個 是 未來 的 發展 方向 是 什麼, 我們 大概 已經 說過 了 对象 存储 可能 是 这个 范冰 认为 未来 的 发展 方向 那 如果 有 听众 朋友 想要 进入 这个 领域 啊 想要 做 分布式文件系统 或者说 分布式 对象 存储 或者 分布式 数据 湖 这样 的 那 他 应该 做 什么样 的 准备 呢 应该 准备 一些 哪 方面 的 知识 或者 技能 或者
经历 呢 我 覺得 這兩條 路, 第一 個 就是 說 去 大廠 去 做 後 端的 這些 開發 的 工程 師, 很多 這些 項目 其實 都 是, 矽谷 很 有意思, 就是 從大 廠裡 面會 孵化 項目 早期 的 時候 比如 說 像 這個 從 Facebook 出來 的 一些 項目 還有 包括 後 來 越來 越 多 從 Uber 或者 從 Airbnb, Lyft 都 會 有 一些 項目 出來 所以 大廠 裡面 會 孵化 出來 這些 項目 就是 做 這些 後 端的 這些 infrastructure 的 東西 這是 一個 還有 一條 路 就是 去 讀 研究生 然後去 做 這塊 的 一些 研究 然後像 特別 是 如果 你 是 去 了 Berkeley 這樣 的 一些 學校 的 話 那麼 很 有 可能 你 就 會 自己 孵化 出來 一個 東西 一個 項 目然 後 最 後 孵化 出來 一個 公司 這也 是 他們 的 就是 很 經常 的 包括 我們 的 現在 我們 做 的 這個 公司 Luxio 它 就是 從 Berkeley 的 畢業 的 這個 博士生 的 畢業 的 研究 論文裡面 就 孵化 出來 的 所以 這個 的 話 我 是 看到 的 是 兩個 比 較 靠 譜 的 角度
然後在 讀 研究生 的 時候 有 工業界 人士 對 你 嗤之以鼻 恭喜 你 感覺 有 前途 了
所以 這個 也 是 我 自己 的 身份 也 發生 了 一個 轉換 就是 最早 的 時候 在 研究生 的 時候 就 覺得 工業界 的 人 挺 不 友好 的 我們 還覺 得 選秀界 的 人 很 不 友好 對 對 就是 你 站 在 不同 的 角度 吧 然後我們 在 那個 時候 的 時候 我 就 覺得 挺 有意思 就是 說 這個 工業界 的 人 可能 會 對 學術 的 這個 確實 是 想 的 問題 是 不 一樣 的 一個 出 發點 吧 你 在 工業界 的 時候 看 的 是 這個 問題 更 多 的 是 說 這個 多 可行 我 是不是 能 在 這個 quarter 裏 面 或 這個 下個 quarter 裏 面實現 出來 就 能 幫助 我 的 KPI 是不是 但是 對 於 這個 學校 的 很多 這個 項目 來 說 的 話 它 比 較 超前 一些 這也 應該 的 但是 你 可能 不應 該 超前 太多 你 超前 十年 這個 肯定 是 不應 該 的 你 超前 個 一 兩年 這個 是 一個 比 較 好 的 一個 時 機點 才 超前
一兩年 我 怎麼 聽 就 覺得 應該 超前 三十年 四十年 才 算是 偉大 的
工作 我覺 得 那樣子 的 話 你 做 計算機 領域 的 話 你 就 會 餓 死 了 如果 超前 三十年
四十年 那個 對 你 嗤之以鼻 的 人 你 就 等 不到 打 他 臉
了 好 那 我們 就 感謝 範碧來 到 我們 節目給 我們 講了 這麼 多 的 內幕 啊 還有 她 的 這個 獨特 的 對 於 分 佈 式 文件 系統 這個業 內 人士 的 觀察
也 是 非常 感謝斯 多亞特 和 Sean 和 我 一起 來 做 這個 討論 我 覺得 这个 过程 我 也 是 非常 的 愉快 回顾 了 很多 过去
的 一些 故事 好 那 就 感谢 收听 我们 的 节目 喜欢 我们 的 节目 请 在 各大泛 用型 博客 平台 订阅 和 收听 欢迎 加入 我们 的 停游区 成为 我们 的 志愿者 那 我们
后会有期 下期 再见 拜拜










