为什么需要共享存储
绝大多数集群都使用共享存储。那why?集群中要保证重要资源的可用性。资源可能运行在任意节点,可能需要访问相同的文件。如果集群资源只处理静态文件,那就不需要共享存储。如果文件改动不频繁,那么可以通过复制或rsync之类的方案来进行节点间同步。而当数据时动态的而且频繁变化,那么就需要共享存储了。
通常,集群资源使用三类文件:
一、二进制可执行文件,最好分别安装在每个节点上。这样保证每个节点上应用独立运行。
二、配置文件,推荐将这类配置文件放置在共享存储上,这样确保集群中的节点访问相同的配置文件。理论上,节点间对配置文件进行人工同步也是可行的,但是实际上会出现问题,可能导致各节点上配置文件版本不一致。
三、最重要的一种文件类型,数据文件。这一般是最有价值的数据,一般放在共享存储上,集群中的节点能同时使用,需要通过冗余来保护这些数据。
单一操作系统上的文件系统
一般的文件系统包含在系统内核中,来实现文件、文件夹等:
文件系统维护FAT(File Allocation Table):逻辑文件和物理磁盘块编号的关联信息。
文件系统维护磁盘block信息,处理应用的读写请求(使用FAT信息)。
维护”file cache“,当新信息写到文件后,保存在磁盘同时复制到文件系统的”cache buffers“,应用又需要读取相同文件分区时,文件系统从cache缓冲区进行简单检索,而不是去磁盘重新读取。
NAS、SAN及集群文件系统
在选择共享存储解决方案时,通常从NAS和SAN中选择,还有如集群存储,典型集群存储有两种实现方式:一种是硬件+