RAID 如何组合磁盘的容量与容错?
- RAID: 把多个磁盘组织成阵列,按条带、镜像或校验策略平衡性能、容量和磁盘失效容忍度;
- 容量前提: 下表设有 n 块等容量磁盘,每块容量为 S,不计文件系统和元数据开销;
| 级别 | 方法 | 最少磁盘 | 可用容量 | 容错边界 |
|---|
| RAID 0 | 条带化 | 2 | nS | 不容忍磁盘丢失 |
| RAID 1 | 镜像 | 2 | 双盘时 S | 双盘时可失去一盘 |
| RAID 5 | 条带与单校验 | 3 | (n−1)S | 一盘失效 |
| RAID 6 | 条带与双校验 | 4 | (n−2)S | 两盘失效 |
| RAID 10 | 镜像组再条带化 | 4 | nS/2 | 每个镜像组至少保留一盘 |
- 性能权衡: 条带化可并行读写,镜像重复写,校验阵列的小随机写需额外处理,不能统一宣称 RAID 5/6 写性能高;
- 成本权衡: 镜像通常牺牲约一半容量,校验阵列容量利用率随盘数变化;
- 保护边界: RAID 不防误删、逻辑损坏或整个站点消失,不能代替备份;
卷、文件、块和对象如何表示存储?
| 形态 | 暴露给使用方的单位 | 常见用途 |
|---|
| 卷 | 一片逻辑存储空间 | 可跨磁盘,也可由一盘划出多个 |
| 文件存储 | 目录路径与文件 | 共享目录、用户文件 |
| 块存储 | 可寻址的数据块 | 数据库磁盘、文件系统底层 |
| 对象存储 | 对象键、数据与元数据 | 媒体、备份、大规模非结构化内容 |
- 文件存储: 目录层级便于人和应用组织数据,访问需要遵循文件系统语义;
- 块存储: 上层负责把块组织为文件或数据库页,底层可以灵活放置和重组块;
- 对象存储: 使用键访问完整逻辑对象,内部可以分片,但不是要求应用先把所有文件手工切碎;
- 原文示例: 文件存储有 EFS、Azure Files、Filestore;块存储有 EBS;对象存储有 S3、Blob Storage、Cloud Storage;
NAS 如何提供网络共享文件?
- NAS: 通过网络提供共享文件访问的存储设备或系统,适合多个授权用户集中存取文件;
- 运维边界: 容量扩展、权限与故障恢复由部署承担,自建 NAS 不自动获得所有公有云能力或成本优势;
HDFS 如何存放超大文件?
- HDFS: 面向大数据、高吞吐访问的分布式文件系统,把大文件拆成块存到多台普通机器;
- 副本机制: 文件块保存多份副本以容忍节点失效,通常除最后一块外块大小相同;
- 使用条件: 适合大文件吞吐型处理,不能仅因为“分布式”就把它当所有低延迟小文件场景的首选;