1、概念
1、按照发展阶段:
- 总线存储
- 网络存储
- 虚拟存储(云存储,对象存储。。。)
2、按照总线和接口类型:
- IDE, PATA, SATA
- PCI-E
- SCSI, SAS
- USB
3、按照网络存储结构:
- DAS(Direct Attached Storage),SCSI
- NAS(Network Attached Storage),NFS,CIFS
- SAN(Storage Area Network),FC-SAN,IP-SAN
4、从应用角度:
- 块存储
- 文件存储
- 对象存储
5、存储介质:
- HDD,速度: sas>scsi>sata>pata,寻址LBA&CHS,调度FCFS,SSTF,SCAN,C-SCAN,LOOK,C-LOOK
- SSD,速度: slc>mlc>tlc,pcie>sas>sata
6、RAID&JBOD:
- RAID 0
- RAID 1
- RAID 5,神奇的异或
- RAID 6,伽罗华,让人感慨的天才
- RAID 10,为什么不是01
7、IO调度
- deadline,对于CEPH来说,综合性能最好
- cfs,不适合CEPH
- noop,可能适合SSD
8、快照,克隆,镜像
- 快照,某个时间点的映像,相关概念,RoFW,CoFW
- 克隆,和某一时刻源数据完全相同,不随源数据变化而变化
- 镜像,和源数据同时变化,保持一致
9、一致性概念
- 最终一致性,比如swift
- 强一致性,比如CEPH
10、CAP理论
- Consistency(一致性),all nodes see the same data at the same time
- Availability(可用性),a guarantee that every request receives a response about whether it succeeded or failed
- Partition tolerance(分区容忍性),the system continues to operate despite arbitrary message loss or failure of part of the system
- 经典文章:CAP Twelve Years Later: How the "Rules" Have Changed
- 理论和实际是有差距的,CAP告诉我们不要做无用功
11、ACID vs BASE
- ACID,原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)
- BASE,基本可用(Basic Availability)、软状态(Soft State)、最终一致性(Eventual Consistency)
- 需求决定架构
2、算法
1、Paxos,个人理解核心思想可能是序列化,一次只做一件事,大多数通过几个概念吧
2、Consistent hashing,CRush,关注分布均匀,迁移大小,故障域
3、LRU,ARC,如何提升缓存性能,以及分布式缓存中的一致性问题。
4、Bloom Filter,时间,空间,性能
3、实践
1、IO路径,性能优化
- 分析数据从哪里来,到那里去,经过了那些系统,或者模块,以及相关硬件,相关协议。
- 一些影响性能的问题,对齐,写惩罚,链路保活,资源竞争,上下文切换,Cache
2、相关工具,搜索《三张图看遍Linux 性能监控、测试、优化工具》
4、自勉
- 学而不思则罔,思而不学则殆
- 吾生也有涯,而知也无涯,以有涯随无涯,殆已
- 大胆假设,小心求证