数据库文件存放在NAS中,会有什么问题吗?
一、数据库文件存放在NAS中,会有什么问题
性能下降100倍左右。数据库是典型IO密集型系统,CPU都不太重要最重要的是存储了。EMC就做存储都能做到几百亿规模。甲骨文现在都推荐全SSD了。数据库确实吃内存,但是更吃磁盘,一年报废几个也是常事。所以还必须搞磁盘阵列。即使如此,磁盘阵列全挂也不是那么少见。
不用NAS的主要原因在于两个:
1.数据库是延时敏感型,而NAS多数工作在以太网环境下,而TCP/IP协议决定了这个协议的数据可靠性不够强,IO还可以乱序传送,而数据库是绝不可以乱序的。所以不得不等最慢的那个IO完成再做下一个。
2.除了NETAPP之外,所有的NAS几乎都是在SAN基础的阵列加NAS GATEWAY。那么,多了一层必然增加延时降低效率。
要用nas看中的是数据持久性,扩展性,增值服多,特别是vm场景,且单个nas的总iops和带宽都比本地盘高,所以在负载稍大时,nas对业务层体现出来的性能更高。从单个请求看,协议上的差别开销从来都可忽略,即使是http,协议层上如果性能有差别,一定在crc计算,安全算法,通信模型上的不同; 对于本地盘和nas开销看,主要在因nas拉远,有一次网络开销,对于db的io模型有两类,扫表的顺序大io,考验带宽,网络开销可忽略,索引处理的随机小io,这个需考虑使用什么盘,负载来看,如一次hdd盘随机读10ms,一次网络100us,影响多少可简单估一下,另外网络使用rdma时廷更低,且一旦负载上来后,接近本地盘能力,nas性能更好,所以在想用nas的场景,性能不是问题。但为什么推荐使用nas的少呢,的确有的存储厂商在nas优化不够,另外有兼容性风险,db开发时基本使用本地盘测试,相同os文件操作api,极个别api在本地盘是原子的,但nas是两条命今,在极端场景要出问题,不是说每种db都有问题,自少postgresql要打个补丁。
延伸阅读:
二、分布式存储的优势
可扩展:分布式存储系统可以扩展到数百甚至数千个这样的集群大小,并且系统的整体性能可以线性增长。
高可用性:在分布式文件系统中,高可用性包含两层,一是整个文件系统的可用性,二是数据的完整和一致性
低成本:分布式存储系统的自动容错和自动负载平衡允许在成本较低服务器上构建分布式存储系统。此外,线性可扩展性还能够增加和降低服务器的成本。
弹性存储: 可以根据业务需要灵活地增加或缩减数据存储以及增删存储池中的资源,而不需要中断系统运行。

相关推荐HOT
更多>>
受到关注的前沿技术有哪些?
一、人工智能(AI)人工智能是目前最受关注的技术领域之一,涵盖机器学习、深度学习、自然语言处理等方面。AI技术的广泛应用带动了对AI专业人才...详情>>
2023-10-17 23:43:19
有什么免费且稳定可以远程连接的Mysql云数据库?
一、免费且稳定可以远程连接的Mysql云数据库1、SQL FiddleSQL Fiddle 提供了 MySQL、Oracle、PostgreSQL、SQLite 以及 SQL Server 数据库环境详情>>
2023-10-17 12:52:43
为什么mysql从8.0.0版本开始,zip方式安装就不支持32位了?
一、为什么mysql从8.0.0版本开始,zip方式安装就不支持32位目前mysql支持win32的版本最新只到5.7.33,具体如下图,打开下载页面之后点击红框里...详情>>
2023-10-17 09:29:42
MySQL InnoDB引擎中的各种锁具体是怎么实现的?
一、MySQL InnoDB引擎中的各种锁的实现方式MySQL InnoDB引擎中的各种锁是通过多种机制实现的1、共享锁(Shared Lock)和排他锁(Exclusive Lock...详情>>
2023-10-17 08:59:33