Frangipani
简介
Frangipani是一个可扩展的分布式文件系统,它利用Petal提供的虚拟磁盘和分布式锁服务来实现一致性、容错性和易管理性。Frangipani适合在一个信任的集群中运行,也可以通过网络文件访问协议向外部机器提供文件服务。Frangipani使用写前日志和多版本缓存来提高元数据更新的性能和恢复的速度。Frangipani还支持在线快照备份,可以在不停机的情况下创建一致的文件系统副本。Frangipani在工程工作负载下表现出良好的单机性能和可扩展性。
特点
优点:
- 它可以将多台机器上的磁盘管理为一个单一的存储池,提供给用户一致的文件视图。
- 它可以轻松地添加或删除服务器来增加存储容量和吞吐量,而不影响现有服务器的配置或运行。
- 它可以简化系统管理员的工作,无需手动分配或迁移文件,也无需在每次服务器故障后运行fsck等工具。
- 它可以利用Petal的高可用性和快照功能,实现文件系统的容错和备份。
- 它可以通过分布式锁服务和写前日志来保证多台服务器对文件系统的一致访问和修改。
缺点:
- 它需要在信任的集群中运行,或者通过另外的网络文件访问协议来提供给不信任的机器,这可能会带来安全和兼容性的问题。
- 它只记录元数据的更新,而不记录用户数据的更新,因此在服务器故障后,用户无法保证文件系统状态的一致性。
- 它不使用磁盘位置信息来放置数据,也不使用缓存间传输来优化写锁的释放,这可能会影响数据的局部性和性能。
- 它对整个文件或目录加锁,而不是对单个块加锁,这可能会限制某些工作负载下的并发度。
在线备份快照
使用Frangipani进行在线快照备份的方法如下:
- 首先,备份程序需要强制所有的Frangipani服务器进入一个屏障,这可以通过使用分布式锁服务提供的一个全局锁来实现。Frangipani服务器在执行任何修改操作时需要以共享模式获取这个锁,而备份程序则需要以独占模式请求这个锁。
- 当一个Frangipani服务器收到释放屏障锁的请求时,它需要阻塞所有新的修改文件系统调用,将缓存中的所有脏数据写回Petal,然后释放锁。当所有的Frangipani服务器都进入屏障后,备份程序就能获取到独占锁,然后在Petal上创建一个快照,并释放锁。
- 此时,服务器可以重新以共享模式获取锁,并恢复正常的操作。备份程序可以将快照作为一个Frangipani卷挂载到系统上,并以只读方式访问其中的文件。备份程序也可以将快照转储到磁带上,以便在不需要Frangipani的情况下恢复文件。
什么是Petal
Petal是一种分布式存储系统,它为客户端提供虚拟磁盘。与物理磁盘一样,Petal虚拟磁盘提供了可以在块中读写的存储空间。与物理磁盘不同,虚拟磁盘提供不连续的2字节地址空间,物理存储空间按需分配。Petal可以选择性地复制数据以实现高可用性。Petal还提供了高效的快照功能,来支持一致的备份
Frangipani是一种分布式文件系统,它位于Petal之上,利用Petal提供的虚拟磁盘和分布式锁服务来实现一致性、容错性和易管理性。Frangipani适合在一个信任的集群中运行,也可以通过网络文件访问协议向外部机器提供文件服务