存储按照对外提供服务的方式分为:块存储、文件存储、对象存储。块存储即我们日常说的SAN存储;文件存储即我们日常说的NAS存储;对象存储是最近几年才兴起的一种存储接口。
1.块存储-即SAN存储
按照底层存储与主机的接口或网络类型,概要的可以分为:PCI-SAN、PCIE-SAN、SCSI-SAN、SAS-SAN、FC-SAN、IP-SAN等。不熟悉的存储的人有一个疑惑:为什么叫块存储呢?
据我了解,咱们目前的好多IT同事都不是科班出身;即使科班出身,也不一定系统的学习过linux操作系统。好多人对linux系统的了解也属于:半路出家,用到啥学啥;在此建议:IT的人,务必要熟悉linux,推荐系统的学习一下redhat的RHCE认证。linux系统中,设备类型有字符设备和块设备。块存储和linux系统中的块设备密切相关。块存储在linux系统中表现为块设备,比如/dev/sda,/dev/sdb等等。
正常情况下,块设备需要经过三个步骤才能使用,步骤如下:
步骤一:磁盘分区fdisk /dev/sdb或者parted /dev/sdb
步骤二:mkfs即做文件系统,如mkfs.xfs /dev/sdb1
步骤三:挂载,如mount -t xfs /dev/sdb1 /data
备注:
1)fdisk最大只能支持2T的磁盘;parted可以支持超过2T的磁盘
2)块存储中的一个lun一般只让一个主机看到
3)特殊情况下,块存储中的一个lun也可以让多个主机看到(比如oracle rac环境)
4)块存储一般都要涉及到多路径,后续文章将会讲解:存储架构和多路径
2.文件存储-即NAS存储(Linux中是NFS,windows中是CIFS)
大家了解了块存储后,再理解NAS存储就非常容易了。NAS存储比块存储要简单;块存储要经过3个步骤才能使用,NAS存储只需要一个步骤即可使用;即挂载,如mount -t nfs 172.1.1.251:/nfs /data
是不是非常简单呢?你用起来是简单了,但是块存储的三个步骤依然没有省略,只是存储控制器帮你做了(自己用linux搭建过nfs吧,块存储的三个步骤还的外加一个nfs服务及配置)。
备注:
1)nas存储的共享文件系统可以让多个主机同时挂载和读写
2)有同学说,那同时挂载和读写,那文件会不会废掉呢?当然不会,同时读肯定没事;但是不能同时对一个文件进行修改。
3)nas存储一般应用:共享文件,写一次读多次的场景
3.对象存储
对象存储是最近几年才兴起的一种存储,它可以完美的解决文件存储的一些不足。那么文件存储有哪些不足呢?
1)文件系统容量和inode有限制(取决于nfs共享的文件系统类型,由块存储的第三步的mkfs决定;比如ext3|ext4|xfs都有自己的单文件系统和inode最大限额)
2)小文件对NAS存储来说,简直是噩梦(以前的单位曾经遇到过isilon分布式文件存储下一个文件夹存放了几十亿个几K的文件,ls一下根本出不来;辛苦是高端存储,普通NAS存储绝对挂了)
3)存储路径是树状层次结构,效率低下;尤其是嵌套的文件夹层级较多的时候
而对象存储的特性,如下:
1)对象存储几乎无容量和inode限制,对上层应用来说就是一个黑洞,直接put|get即可
2)对象存储没有文件存储的层次结构,单一的扁平结构
3)非常适合海量小文件存储
4.块、文件、对象存储对比