企业存储系统
随着这两年产业互联网的推动和发展,越来越多的企业开始进行数字化转型,将传统的业务流程进行数字化改造。在进行数字化的过程中,需要数据来支撑企业的业务流程重塑,并以客户、产品为核心,以数据来支撑精细化运营。而数据分散在不同的系统中,要更充分的利用数据,需要将企业的大量数据集中存储,并进行业务化处理。此时,我们要想办法来解决大规模数据存储的问题。不管是使用哪种存储技术,都需要有存储硬件的支持。
一、硬盘
硬盘是计算机的主要存储硬件,可以用来存储大量数据。目前(2020年),市面上比较流行的硬盘多数是TB级的。
1.SATA硬盘
SATA即Serial ATA(串行ATA),是由Intel、IBM、Maxtor和Seagate等公司提出的硬盘接口规范。采用的是串行连接方式,很多时候会把SATA接口的硬盘称之为串口硬盘。
上图为希捷2TB高速机械硬盘,SATA接口,拥有256M的磁盘缓存,转速7200rpm,每秒可达90-190MB的速度。
2.SATA SSD固态硬盘
3.RAID磁盘阵列
单个硬盘的存储能力是有限的,如果要存储更多的数据,可以通过某种技术,将若干个硬盘连接在一起,提供能耗的存储能力。我们在服务器上插更多的磁盘来提高存储容量,而服务器上的插槽是有限的,我们无法无限地增加硬盘。所以,我们可以买RAID磁盘阵列来解决数据存储速度、容错问题。
RAID可以将多块独立的硬盘组织在一起,可以将多块硬盘连接在一起,并在性能上、容错上会有一定地提升。
二、存储架构
1.DAS存储架构
DAS存储架构也称为直连式存储(Direct-Attached Storage),很多中小型的企业,存储系统会直接和服务器进行连接。因为DAS是通过服务器直接连接存储的,比较依赖操作系统来进行IO操作。
2.NAS网络接入存储
NAS也称为网络接入存储(Network-Attached Storage),是通过将各种存储设备通过网络地方式连接在一起,因为NAS存储是通过网络连接的,所以并不依赖某一种类的操作系统,所以不管是Windows、MacOS、Linux、Unix都是可以使用NAS的。
三、文件系统
1.介绍
- 计算机的文件系统是一种存储和组织计算机数据的方法,它使得对其访问和查找变得容易
- 文件系统使用文件和树形目录的抽象逻辑概念代替了硬盘和光盘等物理设备使用数据块的概念,用户使用文件系统来保存数据不必关心数据实际保存在硬盘(或者光盘)的地址为多少的数据块上,只需要记住这个文件的所属目录和文件名。
- 在写入新数据之前,用户不必关心硬盘上的那个块地址没有被使用,硬盘上的存储空间管理(分配和释放)功能由文件系统自动完成,用户只需要记住数据被写入到了哪个文件中。
- 文件系统通常使用硬盘和光盘这样的存储设备,并维护文件在设备中的物理位置。但是,实际上文件系统也可能仅仅是一种访问资料的界面而已,实际的数据是通过网络协议(如NFS、SMB、9P等)提供的或者内存上,甚至可能根本没有对应的文件(如proc文件系统)。
- 严格地说,文件系统是一套实现了数据的存储、分级组织、访问和获取等操作的抽象数据类型(Abstract data type)。
2.重要概念
- 文件系统是一种用于向用户提供底层数据访问的机制。它将设备中的空间划分为特定大小的块(或者称为簇),一般每块512字节。数据存储在这些块中,大小被修正为占用整数个块。由文件系统软件来负责将这些块组织为文件和目录,并记录哪些块被分配给了哪个文件,以及哪些块没有被使用。
- 不过,文件系统并不一定只在特定存储设备上出现。它是数据的组织者和提供者,至于它的底层,可以是磁盘,也可以是其它动态生成数据的设备(比如网络设备)。
3.文件名
- 在文件系统中,文件名是用于定位存储位置。
- 大多数的文件系统对文件名的长度有限制。在一些文件系统中,文件名是大小写不敏感(如“AAA”和“aaa”指的是同一个文件);在另一些文件系统中则大小写敏感。
- 大多现今的文件系统允许文件名包含非常多的Unicode字符集的字符。然而在大多数文件系统的界面中,会限制某些特殊字符出现在文件名中。(文件系统可能会用这些特殊字符来表示一个设备、设备类型、目录前缀、或文件类型),为方便起见,一般不建议在文件名中包含特殊字符。
4.元数据
- 其它文件保存信息常常伴随着文件自身保存在文件系统中。
- 文件长度可能是分配给这个文件的区块数,也可能是这个文件实际的字节数。文件最后修改时间也许记录在文件的时间戳中。有的文件系统还保存文件的创建时间,最后访问时间及属性修改时间。(不过大多数早期的文件系统不记录文件的时间信息)其它信息还包括文件设备类型(如:区块数,字符集,套接口,子目录等等),文件所有者的ID,组ID,还有访问权限(如:只读,可执行等等)。
[root@node2 ~]# ll total 32 -rw-------. 1 root root 2117 Apr 8 2020 anaconda-ks.cfg drwxr-xr-x. 2 root root 6 Aug 30 09:33 Desktop drwxr-xr-x. 2 root root 6 Aug 30 09:33 Documents drwxr-xr-x. 2 root root 6 Aug 30 09:33 Downloads -rw-r--r--. 1 root root 2165 Apr 8 2020 initial-setup-ks.cfg drwxr-xr-x. 2 root root 6 Aug 30 09:33 Music drwxr-xr-x. 2 root root 6 Aug 30 09:33 Pictures -rw-r--r--. 1 root root 3158 Oct 10 22:53 profile drwxr-xr-x. 2 root root 6 Aug 30 09:33 Public drwxr-xr-x. 2 root root 6 Aug 30 09:33 Templates drwxr-xr-x. 2 root root 6 Aug 30 09:33 Videos -rw-r--r--. 1 root root 18234 Oct 10 18:04 zookeeper.out |
四、文件系统分类
-
磁盘文件系统
磁盘文件系统是一种设计用来利用数据存储设备来保存计算机文件的文件系统,最常用的数据存储设备是磁盘驱动器,可以直接或者间接地连接到计算机上。例如:FAT、exFAT、NTFS、HFS、HFS+、ext2、ext3、ext4、ODS-5、btrfs、XFS、UFS、ZFS。
Windows支持的文件系统
Windows | FAT12/FAT16 | FAT32/VFAT | FAT64/exFAT | NTFS |
Windows 3.x或更早 | 可读/可写 | 不支持 | 不支持 | 不支持 |
Windows 95 | 可读/可写 | 不支持 | 不支持 | 不支持 |
Windows 95(OSR2以后) | 可读/可写 | 可读/可写 | 不支持 | 不支持 |
Windows NT | 可读/可写 | 不支持 | 不支持 | 可读/可写 |
2000 Windows 10 | 可读/可写 | 可读/可写 | 可读/可写 | 可读/可 |
Linux支持的文件系统
随着Linux的不断发展,它所支持的文件系统也在迅速扩充,Linux系统核心可以支持十多种文件系统类型:Btrfs、JFS、ReiserFS、exFAT、ext、ext2、ext3、ext4、XFS、ISO 9660、Minix、MSDOS、UMSDOS、VFAT、NTFS(Linux Kernel内置的NTFS驱动程序,写入功能不稳定)、HPFS、NFS、SMB、SysV、PROC等。
注意:部分Linux发行版的Kernel默认不编译Kernel内置的NTFS文件系统支持,常见的在Linux下读写NTFS的解决方法是安装NTFS-3G或ufsd等NTFS驱动程序。部分Linux发行版对NTFS的支持度并不高。
UNIX及BSD操作系统下的文件系统
柏克莱加州大学开发早期的伯克利快速文件系统(Berkeley Fast File System),再由各UNIX厂商开发不同的文件系统,包括IRIX上的XFS、IBM AIX的JFS、HP HP-UNIX的VxFS及Solaris的ZFS。
macOS(Mac OS X)的文件系统
从1998年到2016年间使用HFS+,再早采用HFS。从2016年发布的macOS Sierra起,使用苹果文件系统(APFS)。
1.光盘
ISO 9660和UDF被用于CD、DVD与蓝光光盘。
2.网络文件系统
网络文件系统(NFS,Network File System)是一种将远程主机上的分区(目录)经网络挂载到本地系统的一种机制。
3.面临海量数据存储的问题
成本高
传统存储硬件通用性差,设备投资加上后期维护、升级扩容的成本非常高。
性能低
单节点I/O性能瓶颈无法逾越,容量和性能都不易扩展,难以支撑海量数据的高并发高吞吐场景。
可扩展性差
无法实现快速部署和弹性扩展。
支持大数据分析、AI
传统存储与Spark等大数据分析平台对接是否有难度,一套存储能否满足企业数据存储、管理和挖掘的需求。