数据库文件存放在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要打个补丁。
延伸阅读:
二、分布式存储的优势
可扩展:分布式存储系统可以扩展到数百甚至数千个这样的集群大小,并且系统的整体性能可以线性增长。
高可用性:在分布式文件系统中,高可用性包含两层,一是整个文件系统的可用性,二是数据的完整和一致性
低成本:分布式存储系统的自动容错和自动负载平衡允许在成本较低服务器上构建分布式存储系统。此外,线性可扩展性还能够增加和降低服务器的成本。
弹性存储: 可以根据业务需要灵活地增加或缩减数据存储以及增删存储池中的资源,而不需要中断系统运行。

猜你喜欢LIKE
相关推荐HOT
更多>>
RESTful API的命名有什么讲究?
一、RESTful API的命名有什么讲究和目录没关系,通常是框架路由接管的 request uri解析出来的(v1、v2有可能是实际的目录)restful规范/资源名/...详情>>
2023-10-18 23:56:05
文件系统和数据库是由于什么原因才选择B树或B+树建立?
一、文件系统和数据库是由于什么原因才选择B树或B+树建立索引的索引的目标是要找到数据所在的物理位置,因此用树去实现搜索数据所在物理位置,...详情>>
2023-10-18 22:55:19
mysql如果单表数据量过千万怎么办?
一、mysql如果单表数据量过千万怎么办方案概述方案一:优化现有mysql数据库。优点:不影响现有业务,源程序不需要修改代码,成本最低。缺点:有...详情>>
2023-10-18 22:33:40
数据库表名、字段名用中文有什么问题?
一、数据库表名、字段名用中文的问题1、兼容性问题某些数据库管理系统(DBMS)可能不支持使用中文作为表名和字段名,或者对于中文的支持有限。...详情>>
2023-10-18 21:09:43热门推荐
RESTful API的命名有什么讲究?
沸KEGG 怎么用?
热文件系统和数据库是由于什么原因才选择B树或B+树建立?
热mysql如果单表数据量过千万怎么办?
新什么情况下需要使用分布式数据库?
为什么Cassandra的写速度比MySQL快?
数据库表名、字段名用中文有什么问题?
数据库文件存放在NAS中,会有什么问题吗?
多线程并发访问数据库中不同记录时应该采用什么办法?
为什么mysql要额外加入一个utf8mb4数据类型,而不是原地升级utf8?
PolarDB-X与PolarDB的关键区别是什么?
Mysql、SQLite、Mongo的区别?
为什么用Go语言做Web应用开发框架?
什么是i.MXRT11xx上的串行NOR Flash双程序可交替启动?
技术干货






