话说双盘RAID-1的读取应该可以做到两倍速吧?
2131 75
[1 楼] nahcooo [资深泡菜]
22-8-12 16:46
既然一份数据同时存在于两个硬盘,那么读取的时候应该可以从两个盘分开读才对啊,这样理论上有不亚于raid-0的速度?

但实际上貌似没有?为什么?
[76 楼] tianman [泡菜]
22-8-23 15:32
xmyyc 发表于 2022-8-23 14:45
你是错的

愿闻其详
[75 楼] xmyyc [泡菜]
22-8-23 14:45
tianman 发表于 2022-08-19 19:52
确实有人概念不清
1 是谁建立文件系统、在哪一侧建文件系统其实没什么关系。
   很显然,文件系统自然是建立在它自己的阵列里面,这和它由哪个主机建立还是哪个服务器建立并不相干。
我们完全可以在A计算机上对一个磁盘建文件系统,然后将磁盘安装到B计算机去...

你是错的
[74 楼] xmyyc [泡菜]
22-8-23 14:43
aabbaa 发表于 2022-08-20 14:40
理论上行,实际做不到

做得到,只是一般低端设备不这么做
[73 楼] xmyyc [泡菜]
22-8-23 14:42
自由之雨 发表于 2022-08-22 12:40
不会的,raid-1的目的是为了可靠性,所以,不可能把一份数据分两半一边存一半就告诉你干完了,恰恰相反,他要把数据独立存在两个盘上,然后还有对比一下,发现是一样的,才会告诉你它干完了
一般不做对比
[72 楼] xmyyc [泡菜]
22-8-23 14:41
nahcooo 发表于 2022-08-12 16:46
既然一份数据同时存在于两个硬盘,那么读取的时候应该可以从两个盘分开读才对啊,这样理论上有不亚于raid-0的速度?
但实际上貌似没有?为什么?

因为你的主机不行,高档机是可以的
[71 楼] 原版咕咚 [资深泡菜]
22-8-22 22:23
自由之雨 发表于 2022-08-22 12:40
不会的,raid-1的目的是为了可靠性,所以,不可能把一份数据分两半一边存一半就告诉你干完了,恰恰相反,他要把数据独立存在两个盘上,然后还有对比一下,发现是一样的,才会告诉你它干完了

raid-1 不对比,读的时候无从发现文件损坏。
[70 楼] 自由之雨 [泡菜]
22-8-22 12:40
不会的,raid-1的目的是为了可靠性,所以,不可能把一份数据分两半一边存一半就告诉你干完了,恰恰相反,他要把数据独立存在两个盘上,然后还有对比一下,发现是一样的,才会告诉你它干完了
[69 楼] jmlab926 [泡菜]
22-8-20 14:54
真佩服你们,打这么多字也不嫌累……
发布自 iOS客户端
[68 楼] aabbaa [资深泡菜]
22-8-20 14:40
理论上行,实际做不到
[67 楼] tianman [泡菜]
22-8-20 12:37
原版咕咚 发表于 2022-8-20 10:52
他就是个肉烂嘴不烂的老年糊涂虫,什么都不懂,还要装什么都懂,被戳穿了下不来台,死撑着。

“ 下不来台” ——这个真是恰如其分。

要是下的来台,哪里需要抱团骂人呢?
给别人泼脏水自然是你们最懂。
[66 楼] 原版咕咚 [资深泡菜]
22-8-20 10:52
PowerPCG5 发表于 2022-08-19 20:42
你对操作系统、数据结构、文件系统、存储体系完全没有概念,别洋洋洒洒乱写了。找你那个“IBM教员”问问再说吧。
车轱辘话我懒得再打字了。
他就是个肉烂嘴不烂的老年糊涂虫,什么都不懂,还要装什么都懂,被戳穿了下不来台,死撑着。
[65 楼] tianman [泡菜]
22-8-19 20:55
PowerPCG5 发表于 2022-8-19 20:42
你对操作系统、数据结构、文件系统、存储体系完全没有概念,别洋洋洒洒乱写了。找你那个“IBM教员”问问再说吧。

车轱辘话我懒得再打字了。

果不其然,
每到这个环节,就开始给人扣帽子了。

扣帽子当然最保险,这样就不需要道理。
[64 楼] PowerPCG5 [禁言中]
22-8-19 20:42
tianman 发表于 2022-8-19 19:52
确实有人概念不清

1 是谁建立文件系统、在哪一侧建文件系统其实没什么关系。
   很显然,文件系统自然是建立在它自己的阵列里面,这和它由哪个主机建立还是哪个服务器建立并不相干。
我们完全可以在A计算机上对一个磁盘建文件系统,然后将磁盘安装到B计算机去使用。阵列也是一样。

2 我们知道,要将一个文件写入到阵列中,无论是到直连阵列还是到NAS的阵列,都要先建立这个文件的“文件


你对操作系统、数据结构、文件系统、存储体系完全没有概念,别洋洋洒洒乱写了。找你那个“IBM教员”问问再说吧。

车轱辘话我懒得再打字了。
[63 楼] tianman [泡菜]
22-8-19 19:52
PowerPCG5 发表于 2022-8-19 16:33
你看,你又暴露概念不清了。

对于NAS,文件系统是在文件服务器这一侧建立的,跟Host(以下称主机)没有关系,最常见的例子:我一台Linux服务器,本地磁盘是ext4文件系统,运行一个samba提供网络文件共享服务,把本地文件系统的一个文件夹共享出去,客户机可能是一堆Windows机器,Windows并不知道ext4是什么,它只需要通过smb协议访问文件服务器,它本地可能是映射成一个盘符在操作,并不知道这边只是一个文件夹。因为NAS方式里通过网络传输的就是文件名、读写命令和文件数据流。

对于DAS、SAN,无论 ...

PowerPCG5 发表于 2022-8-19 16:33
你看,你又暴露概念不清了。

对于NAS,文件系统是在文件服务器这一侧建立的,跟Host(以下称主机)没有关系,最常见的例子:我一台Linux服务器,本地磁盘是ext4文件系统,运行一个samba提供网络文件共享服务,把本地文件系统的一个文件夹共享出去,客户机可能是一堆Windows机器,Windows并不知道ext4是什么,它只需要通过smb协议访问文件服务器,它本地可能是映射成一个盘符在操作,并不知道这边只是一个文件夹。因为NAS方式里通过网络传输的就是文件名、读写命令和文件数据流。

对于DAS、SAN,无论存储设备内部外部连接多么复杂,对外提供访问的都是裸设备形式(块设备,或者LUN),然后由主机上的操作系统负责建立维护和运行文件系统。主机和存储设备之间交换的信息就只是SCSI命令包含的那些读写命令、块地址和块数据流,没别的。累死你都找不出来你说的那些。我一台主机都可能在你LUN里建MBR分区表,这跟文件有啥关系。Host端根本不知道也不关心存储设备一侧的实现细节。

这个概念是极为简单清晰的。不信你把这一大段去找你的所谓IBM培训讲师去问问。 ...

确实有人概念不清

1 是谁建立文件系统、在哪一侧建文件系统其实没什么关系。
   很显然,文件系统自然是建立在它自己的阵列里面,这和它由哪个主机建立还是哪个服务器建立并不相干。
我们完全可以在A计算机上对一个磁盘建文件系统,然后将磁盘安装到B计算机去使用。阵列也是一样。

2 我们知道,要将一个文件写入到阵列中,无论是到直连阵列还是到NAS的阵列,都要先建立这个文件的“文件名、读写命令和文件数据流”。这是无论哪个方式都绕不过去的第一步。
对于直连阵列的操作,是将这个文件数据流通过“读写操作”写入文件。
而对于NAS阵列,主机是通过SMB协议将主机的请求延伸到文件服务器,由文件服务器完成这个文件数据流的“读写操作”
这两个数据流以及对数据流的读写完全没有任何差别。只不过其中一个通过SMB协议多传送了一定距离。

既然需要读写的文件数据流都是一样的,所以它们各自对自己的阵列所进行的读写方式也是一样的。
前面我已经说过,系统(无论是主机还是NAS)对阵列的写入是和它自己的阵列里面的文件系统直接交互的,是直接相关的。
所以,对于格式化的阵列,无论直连、SAN连接,还是NAS连接,对所操作的文件进行读写的流程都是一样的,都是和阵列反复交互才能读写。和阵列里的文件系统密切相关。

3 “对于DAS、SAN,无论存储设备内部外部连接多么复杂,对外提供访问的都是裸设备形式”这个是概念错误。
你可能不知道,计算机系统对裸设备的读写,和对格式化设备的读写形式是完全不同的。
对于裸设备,计算机系统完全掌握裸设备的设备信息,数据块是直接将“读写命令、LBA地址和块数据流”读写阵列。
而对于格式化存储设备,计算机系统自己并没有阵列中“文件系统”的信息,所以必须通过阵列和文件系统交互才能形成可读写的数据块。所以说格式化存储是和数据读写密切相关的。

对于裸设备(空房子),你可以按照主机的随意安排来存放。一旦将 裸设备格式化(设置房间和房管),主机就不能随意安放了。它需要和文件系统(房管)交互来确定存放的房间,然后才能运输。

如果你不了解这两种读写方式的区别,仅仅看所传送的基本单元,就会以为它们是一样的。但是实际上,它们的本质区别就在于不同的读写机制,而不是传送基本单元。
[62 楼] PowerPCG5 [禁言中]
22-8-19 16:33
tianman 发表于 2022-8-19 15:41
还是你混淆了概念

首先,我们必须知道,阵列本质上就是一个大号的物理磁盘。
SAN上的阵列相当于直连到在主机上的一个磁盘。
NAS上的阵列本质上也是一个大号的物理磁盘。同时,NAS本身本质上也是一个大号的物理磁盘。
虽然传输协议不同,在作为格式化盘使用时,它们并无本质区别。
主机可以在一块直连硬盘上建文件系统,可以在SAN上的阵列建文件系统,也可以在NAS上建文件系统。本质上并无不同,区别仅仅在于传输协议。

你建什么类型的文件系统自然是人为指定的。但是一旦建立就必须按照这个阵列设置的文件系统来读写。或者说用什么格式读写取决于这个阵列相关的文件系统。
和计算机一样,安装什么操作系统是人为指定的,但是一旦安装就必须按照这个操作系统操作,你能说这个操作系统和计算机无关吗?

你说:“Host和盘阵设备之间的“交互”剥掉各种FC网络协议封装核心就是SCSI协议,这里面只有读写命令、LBA地址和块数据流,完全不涉及文件。”这同样是只见树木不见森林。

对于文件的读写来说,“读写命令、LBA地址和块数据流”只是一个建立在基础单元之上的一个单元组合。这个组合在不同传输阶段的意义和传输方向是不一样的。
仅仅靠这一个基础单元组合是不能完成读写操作的。
一个读写操作是靠 ...


你看,你又暴露概念不清了。

对于NAS,文件系统是在文件服务器这一侧建立的,跟Host(以下称主机)没有关系,最常见的例子:我一台Linux服务器,本地磁盘是ext4文件系统,运行一个samba提供网络文件共享服务,把本地文件系统的一个文件夹共享出去,客户机可能是一堆Windows机器,Windows并不知道ext4是什么,它只需要通过smb协议访问文件服务器,它本地可能是映射成一个盘符在操作,并不知道这边只是一个文件夹。因为NAS方式里通过网络传输的就是文件名、读写命令和文件数据流。

对于DAS、SAN,无论存储设备内部外部连接多么复杂,对外提供访问的都是裸设备形式(块设备,或者LUN),然后由主机上的操作系统负责建立维护和运行文件系统。主机和存储设备之间交换的信息就只是SCSI命令包含的那些读写命令、块地址和块数据流,没别的。累死你都找不出来你说的那些。我一台主机都可能在你LUN里建MBR分区表,这跟文件有啥关系。Host端根本不知道也不关心存储设备一侧的实现细节。

这个概念是极为简单清晰的。不信你把这一大段去找你的所谓IBM培训讲师去问问。
[61 楼] tianman [泡菜]
22-8-19 15:41
PowerPCG5 发表于 2022-8-19 13:09
所以说你把SAN和NAS概念都混淆了。

Host和盘阵设备之间的“交互”剥掉各种FC网络协议封装核心就是SCSI协议,这里面只有读写命令、LBA地址和块数据流,完全不涉及文件。什么空闲块、块地址、文件目录这些都是文件系统数据...

还是你混淆了概念

首先,我们必须知道,阵列本质上就是一个大号的物理磁盘。
SAN上的阵列相当于直连到在主机上的一个磁盘。
NAS上的阵列本质上也是一个大号的物理磁盘。同时,NAS本身本质上也是一个大号的物理磁盘。
虽然传输协议不同,在作为格式化盘使用时,它们并无本质区别。
主机可以在一块直连硬盘上建文件系统,可以在SAN上的阵列建文件系统,也可以在NAS上建文件系统。本质上并无不同,区别仅仅在于传输协议。

你建什么类型的文件系统自然是人为指定的。但是一旦建立就必须按照这个阵列设置的文件系统来读写。或者说用什么格式读写取决于这个阵列相关的文件系统。
和计算机一样,安装什么操作系统是人为指定的,但是一旦安装就必须按照这个操作系统操作,你能说这个操作系统和计算机无关吗?

你说:“Host和盘阵设备之间的“交互”剥掉各种FC网络协议封装核心就是SCSI协议,这里面只有读写命令、LBA地址和块数据流,完全不涉及文件。”这同样是只见树木不见森林。

对于文件的读写来说,“读写命令、LBA地址和块数据流”只是一个建立在基础单元之上的一个单元组合。这个组合在不同传输阶段的意义和传输方向是不一样的。
仅仅靠这一个基础单元组合是不能完成读写操作的。
一个读写操作是靠主机和阵列之间的反复交互,反复相互传递不同性质不同内容的基础单元组合才能完成的。怎么能说和阵列没有关系呢?
你忽略了这往来的基础单元的过程,只看基础单元的结构,自然看不到主机和阵列之间的交互作用了。
前面说过,任何基础操作单元,如果单独分析的话,都可以得出“与什么无关”的结论。

同样的情况,当我们看无忌的帖子时,和服务器的通讯也只有“协议、地址和数据流”。
我们是否能够据此说明,无忌服务器和帖子无关、和图片无关,服务器不知道什么是网页结构吗? 本帖最后由 tianman 于 2022-8-19 15:43 编辑
[60 楼] PowerPCG5 [禁言中]
22-8-19 13:09
tianman 发表于 2022-8-19 12:17
图灵大爷给出的计算机抽象确实是这个,但是他并没有因为这个抽象就断定建立在计算机之上的操作系统和计算机无关。
你对阵列也是作同样的抽象,却抽象出建立在块设备之上的一套数据结构跟存储系统没关系的结论出来。
这就是区别。。。。

就说这个外置磁盘阵列,当它被建立文件系统以后,它就不再是一个空房子了。无论它复杂与否。。。
虽然它还是“房子”,但已经不是一个可以随意堆放东西的空房子,因为它有了“房管”和房间。
所以计算机不可能随心所欲地“只要按照操作系统发来的LBA地址存取块就行”。

计算机向格式化的阵列读写数据并不是单向操作,而是和阵列交互才能完成的。这个操作过程当然这和阵列密切相关。
具体来说,
计算机需要向阵列发送一个“文件”(因为阵列里建立的是文件系统)时,首先要向阵列查询是否有空闲块、块地址、文件目录这些信息,然后按照这些信息组织数据,才能写入阵列。LBA并不是凭空得来的,它是阵列参与的结果。
读取文件也是一样。没有阵列参与,计算机既无法写入也无法读出。
所以说,计算机读写操作都和阵列直接相关。

你以为“只要按照操作系统发来的LBA地址存取块就行”其实,这只是一系列操作中最后的一个基础单元。
如果不能分析整个读写流程,只是单独分 ...


所以说你把SAN和NAS概念都混淆了。

Host和盘阵设备之间的“交互”剥掉各种FC网络协议封装核心就是SCSI协议,这里面只有读写命令、LBA地址和块数据流,完全不涉及文件。什么空闲块、块地址、文件目录这些都是文件系统数据结构的内容,不同的文件系统编排方式不一样,都是由操作系统里面的文件系统驱动程序负责处理,也就是你说的所谓“组织”,都是文件系统驱动程序的工作,盘阵完全不知道的。

只要你盘阵配置好了给我主机一个LUN,我在这个LUN上建什么文件系统,FAT也好NTFS也好EXT4也好APFS也好还是AIX JFS2也好,或者给Sybase ASE做裸设备也好,都跟你盘阵没任何关系。

[59 楼] taylor1984 [泡菜]
22-8-19 12:17
速度是双倍没错,但写入的数据量也是双倍
所以实际对用户而言,速度没变
[58 楼] tianman [泡菜]
22-8-19 12:17
PowerPCG5 发表于 2022-8-19 10:58
计算机理论和工程里讲究分层。祖师爷图灵大爷给出的计算机抽象就差不多是你说的那个。一直到研究体系结构和设计处理器本身,也都可以把软件看成是一串指令,不需要多操心其他。

但咱现在讨论的不是存储体系里面的外置磁盘阵列嘛,别就抬其他的杠了。

通常语境下,说SAN,就是特指基于Fibre Channel网络系统的存储系统,特别是接入FC网络的盘阵设备。这个没什么混淆的。不用FC协议的其他类型SAN会特别加前缀,比如iSCSI之类的IP SAN。

盘阵设备确实越来越复杂,再复杂,输出的也不过是一个——你不愿意听块设备——那就说LUN好了。

图灵大爷给出的计算机抽象确实是这个,但是他并没有因为这个抽象就断定建立在计算机之上的操作系统和计算机无关。
你对阵列也是作同样的抽象,却抽象出建立在块设备之上的一套数据结构跟存储系统没关系的结论出来。
这就是区别。。。。

就说这个外置磁盘阵列,当它被建立文件系统以后,它就不再是一个空房子了。无论它复杂与否。。。
虽然它还是“房子”,但已经不是一个可以随意堆放东西的空房子,因为它有了“房管”和房间。
所以计算机不可能随心所欲地“只要按照操作系统发来的LBA地址存取块就行”。

计算机向格式化的阵列读写数据并不是单向操作,而是和阵列交互才能完成的。这个操作过程当然这和阵列密切相关。
具体来说,
计算机需要向阵列发送一个“文件”(因为阵列里建立的是文件系统)时,首先要向阵列查询是否有空闲块、块地址、文件目录这些信息,然后按照这些信息组织数据,才能写入阵列。LBA并不是凭空得来的,它是阵列参与的结果。
读取文件也是一样。没有阵列参与,计算机既无法写入也无法读出。
所以说,计算机读写操作都和阵列直接相关。

你以为“只要按照操作系统发来的LBA地址存取块就行”其实,这只是一系列操作中最后的一个基础单元。
如果不能分析整个读写流程,只是单独分析这个基础单元,才会认为以为阵列和文件系统无关。正所谓“只见树木不见森林”。
事实上,任何基础操作单元,如果单独分析的话,都可以得出“与什么无关”的结论。

对于SAN里的设备,我们通常是说“那个阵列”、“那个带库”,不会用SAN来指代的。
我理解你那也是无心之失。如果不是你特别强调,我也不会再提的。
[57 楼] PowerPCG5 [禁言中]
22-8-19 10:58
tianman 发表于 2022-8-19 10:30
是呀,按照你的逻辑思路,计算机也可以这样分析的:
计算机在逻辑上是一个抽象的一维数组,只需要给出一串指令即可,无论多复杂的计算机系统都只要输入指令操作就行。

而操作系统是建立在计算机之上的一套数据结构,这套数据结构是由人去维护和解释的,跟计算机没关系。

顺便更正一下,“IBM那东西”是阵列机,而不是SAN。
再说一遍,SAN是一个网络系统。。。


计算机理论和工程里讲究分层。祖师爷图灵大爷给出的计算机抽象就差不多是你说的那个。一直到研究体系结构和设计处理器本身,也都可以把软件看成是一串指令,不需要多操心其他。

但咱现在讨论的不是存储体系里面的外置磁盘阵列嘛,别就抬其他的杠了。

通常语境下,说SAN,就是特指基于Fibre Channel网络系统的存储系统,特别是接入FC网络的盘阵设备。这个没什么混淆的。不用FC协议的其他类型SAN会特别加前缀,比如iSCSI之类的IP SAN。

盘阵设备确实越来越复杂,再复杂,输出的也不过是一个——你不愿意听块设备——那就说LUN好了。
[56 楼] tianman [泡菜]
22-8-19 10:30
PowerPCG5 发表于 2022-8-19 10:06
IBM的英文资料里没看到你说的那些。你也不用如此情绪不稳定。

块设备在逻辑上是一个抽象的一维数组,只需要按照LBA寻址即可,无论多复杂的存储系统都只要按照操作系统发来的LBA地址存取块就行。

而文件系统是建立在块设备之上的一套数据结构,这套数据结构是由Host的操作系统内对应的文件系统驱动程序去维护和解释的,跟存储系统没关系。

需要理解文件系统的存储系统那是NAS。IBM那东西是SAN,不是NAS。

是呀,按照你的逻辑思路,计算机也可以这样分析的:
计算机在逻辑上是一个抽象的一维数组,只需要给出一串指令即可,无论多复杂的计算机系统都只要输入指令操作就行。

而操作系统是建立在计算机之上的一套数据结构,这套数据结构是由人去维护和解释的,跟计算机没关系。

顺便更正一下,“IBM那东西”是阵列机,而不是SAN。
再说一遍,SAN是一个网络系统。。。
[55 楼] PowerPCG5 [禁言中]
22-8-19 10:06
tianman 发表于 2022-8-19 08:41
这就是天下所有程序员的通病了。一是爱钻牛角尖,二是只见树木不见森林。

首先再重复一遍,举例DS6800并不是它有多么复杂,而是证明IBM公司的工程师没读过你家的本科教材,自造新名词。仅此而已。

坦率地说,想要从这些技术文档中了解它是不是“不知道文件系统”,这完全是缘木求鱼。
因为,这属于认识论的范畴,仅仅靠技术细节是无法得知的。

如果仅仅从技术细节来看,不但阵列不知道“不知道文件系统”,计算机同样“不知道文件系统”。而且整个计算机体系都“不知道文件系统”。
因为,要是按照你对DS6800的分析方式来分析,CPU“不知道文件系统”,它只知道一个个指令集。内存也“不知道文件系统”,它只是一


IBM的英文资料里没看到你说的那些。你也不用如此情绪不稳定。

块设备在逻辑上是一个抽象的一维数组,只需要按照LBA寻址即可,无论多复杂的存储系统都只要按照操作系统发来的LBA地址存取块就行。

而文件系统是建立在块设备之上的一套数据结构,这套数据结构是由Host的操作系统内对应的文件系统驱动程序去维护和解释的,跟存储系统没关系。

需要理解文件系统的存储系统那是NAS。IBM那东西是SAN,不是NAS。
[54 楼] tianman [泡菜]
22-8-19 08:41
PowerPCG5 发表于 2022-8-18 21:52
你还是没有理解,特别是所谓的IBM设备。

没错,阵列本身可以很复杂,可以有自己的控制器跑自己的软件,哪怕我的雷电3小阵列里面也有一个小处理器在跑不知道什么东西。

但是你去仔细学习IBM的那些文档,6800上面的软件处理 ...

这就是天下所有程序员的通病了。一是爱钻牛角尖,二是只见树木不见森林。

首先再重复一遍,举例DS6800并不是它有多么复杂,而是证明IBM公司的工程师没读过你家的本科教材,自造新名词。仅此而已。

坦率地说,想要从这些技术文档中了解它是不是“不知道文件系统”,这完全是缘木求鱼。
因为,这属于认识论的范畴,仅仅靠技术细节是无法得知的。

如果仅仅从技术细节来看,不但阵列不知道“不知道文件系统”,计算机同样“不知道文件系统”。而且整个计算机体系都“不知道文件系统”。
因为,要是按照你对DS6800的分析方式来分析,CPU“不知道文件系统”,它只知道一个个指令集。内存也“不知道文件系统”,它只是一个“块设备”。其它部件也是一样。。。自然,计算机也“不知道文件系统”了。
而存储等外设也被你分析成“不知道文件系统”,那么整个计算机体系都“不知道文件系统”。

我们可以将这个问题具象化来看:
某公司决定自建一个图书室,并提供一间房间(快空间)
A部门负责基础工作:划分不同区域、分别安装书架、索引柜,并进行编号(格式化)
B部门和C部门负责:采购图书、上架、编索引(写入文件))

图书室建成,大家去借书了
B问A:"我要一本《ABC》,图书室有没有?在哪里"?
B:“我哪知道啊”,不是你们在图书室里面安装书架(格式化)的吗?你不知道吗?“
A:  “书不是你们买来上架(写入文件)的吗?你们怎么会不知道?”
B:“我们上架并建立索引卡片后就走了,我也不知道”
那么到底谁“知道”呢?

C:“你们进图书室查一下索引不就知道了吗?”
A和B异口同声地回答:“图书室哪里知道这些,它就是个大房子,划分成不同的房间给不同的租户而已。”

事实上,任何人要想知道图书室有哪些书、书在哪里,只能去查索引柜里的索引。而索引柜就在图书室内。
这和“谁安装书架(建文件系统)、谁上架图书(写入文件)”这些具体技术细节没有关系。

只有图书室,因为有索引柜和书架及标签,才能“知道”图书。
除了它,图书室以外的任何人和设备都不“知道”里面的图书信息,只能到图书室内去查。
[53 楼] PowerPCG5 [禁言中]
22-8-18 21:52
tianman 发表于 2022-8-18 16:37
1 我举出DS6800的例子无非是告诉你,是IBM公司认为,它们的计算机集群是主系统、阵列设备是子系统,因为它是一个跑OS/400的独立系统。


你还是没有理解,特别是所谓的IBM设备。

没错,阵列本身可以很复杂,可以有自己的控制器跑自己的软件,哪怕我的雷电3小阵列里面也有一个小处理器在跑不知道什么东西。

但是你去仔细学习IBM的那些文档,6800上面的软件处理的也只是一大堆裸磁盘如何组织、如何冗余备份、如何划分卷等等事务性工作,最后完成的无非是把一堆硬盘驱动器组成某种阵列,然后从这个阵列提供的存储空间里划分一部分,通过FC网络提供给Host访问。Host看到这个,就当成一个普通的块设备,在其上建立文件系统,甚至可以再分区见不同的文件系统。

6800这样的设备,是不知道文件系统的,它们只知道磁盘、分区、卷等等东西。对应企业应用场合,我划一个卷给这个Linux主机建了EXT4,又划一个卷给另外一台Linux主机可能会建XFS,再划一块给Windows服务器它大概会格式化成NTFS…… 小小的6800哪里知道这些,它就是自己手里有个大房子,划分成不同的房间给不通的租户而已。
[52 楼] tianman [泡菜]
22-8-18 16:37
PowerPCG5 发表于 2022-8-18 13:25
还是你概念不清。

块设备可复杂了,既可以是单个物理磁盘本身,或者一个磁盘分区,或者组合之后的阵列及其分区、或者一片内存区域(randisk),或者一个逻辑卷(LVM)等等等等。

对于主机而言,SATA挂一块4T硬盘,上面只分了一个区,那这就是一个4T的块设备。一个四盘位的RAID-5磁盘阵列,装了四块4T硬盘,那么主机看来这就是一个12T的裸磁盘,可以分一个12T的分区,成了一个12T的块设备。

DS6800里面确实是有一个PowerPC 处理器,它是不...

1 我举出DS6800的例子无非是告诉你,是IBM公司认为,它们的计算机集群是主系统、阵列设备是子系统,因为它是一个跑OS/400的独立系统。
所以,这是IBM“发明新名词”,而不是我。
在你看来,IBM的工程师毫无疑问都没有读过“本科教材”。。。

2 你们翻过来倒过去地强调阵列是一个“块设备”,其实在这里强调这个概念没多大意义。
因为现在的计算机存储设备基本上全都是“块设备”,作为存储的字符设备已经看不见了。所以这完全是无需你们强调的普遍概念。

同样,“块”也是一个广泛的观念。 stripe是“块”,LBA也是“块”,一个扇区的数据集合其实也是“块”。一个数据段是“块”,一个数据文件也是一个“块”,甚至于互联网上所传输的数据其实也是“块”。
或者说,即使传输一个数据文件也同样是在传输“块”。没必要总是拿“块”说事。

同样是块设备,裸盘系统只存数据。
而格式化盘系统除了数据还有文件系统的信息。所以说它“知道”文件系统结构信息而主设备却“不知道”
主设备只能通过向存储设备请求才能“知道”文件系统结构等信息。这个最基本的原理真的很难懂吗?

3 再说说SAN、NAS和阵列的概念
其实,阵列就是一个存储设备,NAS是一种网络存储设备。
而SAN并不是一个存储设备,它和NAS不是一个层面上的。你的前贴确实混淆了概念
其实呢,SAN只是一个存储网络系统,它不是一个特定的存储设备。所以不能和NAS及阵列相提并论。
事实上SAN包括主机系统、光纤交换机,当然也包括这种存储设备。
而且,这个存储设备也不一定是阵列,还可以是磁带库。它们的工作方式差异很大。

其实可以看出,参与本帖的网友都不是没读过本科教材的
尺长寸短或词不达意谁都难免。观点不同尽可争议,但是论事不必论人。谁都不知道其他人的情况。
[51 楼] PowerPCG5 [禁言中]
22-8-18 13:25
tianman 发表于 2022-8-18 12:38
我告诉你,我说的是:“DS6800控制器自己就是使用OS400的一个系统”
这是IBM现场工程师培训时说的。我们的主系统操作系统是AIX,并不使用OS400

是不是块设备和这个没有一毛钱的关系。硬盘也是块设备。。。
设备是否知道或者说保存文件信息,和FC里面跑什么没关系。
格式化系统的文件信息确实是存在阵列里,主系统自己没有也不知道阵列的文件结构等信息。

不知道您是如何扯到san和nas上来的。
我们这里说的是阵列。你不知道它们之间的关系?


还是你概念不清。

块设备可复杂了,既可以是单个物理磁盘本身,或者一个磁盘分区,或者组合之后的阵列及其分区、或者一片内存区域(randisk),或者一个逻辑卷(LVM)等等等等。

对于主机而言,SATA挂一块4T硬盘,上面只分了一个区,那这就是一个4T的块设备。一个四盘位的RAID-5磁盘阵列,装了四块4T硬盘,那么主机看来这就是一个12T的裸磁盘,可以分一个12T的分区,成了一个12T的块设备。

DS6800里面确实是有一个PowerPC 处理器,它是不是跑OS/400无关紧要,无论在DS6800上面怎么折腾,最后通过两个FC口出来给主机Host的还是一个个普通的块设备,Host上的OS再在这个块设备上建立文件系统。这是标准的SAN做法。

另外一种低端但常用的SAN手段是iSCSI,透过TCP/IP协议传输SCSI命令的块设备。

相比之下,我们日常通过SCSI、火线800、雷电2/3连接的磁盘阵列称为DAS。

如果你的存储服务器上跑的是Samba、NFS、afpd、ftp、WebDAV等等,那就是NAS。
[50 楼] tianman [泡菜]
22-8-18 12:38
PowerPCG5 发表于 2022-8-18 11:19
你说的那是主机Host,我说的是操作系统OS和文件系统File System,故意装糊涂是吗?

即便大型SAN,尽管内部也有处理器什么的,甚至还有网络协议,但它通过FC交出去的也只是个块设备,FC里面跑的也只是封装好的SCSI命令和块数据流。

估计你SAN和NAS分不清楚。

条块就是若干个连续的块。

我告诉你,我说的是:“DS6800控制器自己就是使用OS400的一个系统”
这是IBM现场工程师培训时说的。我们的主系统操作系统是AIX,并不使用OS400

是不是块设备和这个没有一毛钱的关系。硬盘也是块设备。。。
设备是否知道或者说保存文件信息,和FC里面跑什么没关系。
格式化系统的文件信息确实是存在阵列里,主系统自己没有也不知道阵列的文件结构等信息。

不知道您是如何扯到san和nas上来的。
我们这里说的是阵列。你不知道它们之间的关系? 本帖最后由 tianman 于 2022-8-18 12:51 编辑
[49 楼] PowerPCG5 [禁言中]
22-8-18 11:28
yejun 发表于 2022-8-18 00:36
mdadm的软raid也有一个checkarray命令可以定时自检,有些系统安装的时候会设置定时。不过raid 1,5在校验位不匹配的时候也没办法知道是哪个盘出错了,除非磁盘本身报错。zfs,btrfs有额外校验,数据不匹配的时候应该能知道哪个数据是对的。


Ubuntu下配置mdadm会自动添加crontab。

Fedora下需要手动开启定时器任务:

systemctl enable raid-check.timer

预设是每个周日凌晨1点。

磁盘底层都有CRC校验,只要物理上不损坏,能读出完整的扇区就行。物理损坏不可修复了阵列才会报错降级。 本帖最后由 PowerPCG5 于 2022-8-18 11:52 编辑
[48 楼] PowerPCG5 [禁言中]
22-8-18 11:19
tianman 发表于 2022-8-18 05:51
阵列系统属于外设,读取它的自然可以称为主系统
我用过IBM System Storage DS6800,它的资料中就是这样称呼的。它自己的控制器就是一台使用OS400的系统。

按照你们家的教材,上面有RAID1的数据上升到扇区级别的说法?


你说的那是主机Host,我说的是操作系统OS和文件系统File System,故意装糊涂是吗?

即便大型SAN,尽管内部也有处理器什么的,甚至还有网络协议,但它通过FC交出去的也只是个块设备,FC里面跑的也只是封装好的SCSI命令和块数据流。

估计你SAN和NAS分不清楚。

条块就是若干个连续的块。