存贮控制器及存贮控制方法

文档序号:6547221阅读:96来源:国知局
专利名称:存贮控制器及存贮控制方法
技术领域
本发明涉及对在诸如RAID(廉价盘冗余阵列)的多个存储装置中分布并存贮数据和奇偶校验进行控制的存贮控制器,以及其存贮控制方法。
背景技术
RAID是一种将多个硬盘组合起来并作为一个冗余硬盘进行控制的技术,并且根据用于向盘分配数据以及数据冗余化的方法,被分为从RAID 0到RAID 6的七个级别。在这些级别之中的RAID 3到RAID 6中,通过独立于数据存储已根据该数据创建的奇偶校验来实现冗余化(例如,参照日本专利特开第2000-259359号公报)。
首先说明RAID 5的映射。在RAID 5中,每当条带(stripe)改变时改变固定在RAID 4中用于处理奇偶校验的盘,以便分布奇偶校验,由此实现性能增强。例如,对于(4+1)RAID配置的情况,RAID 5映射的一个条带的分配如图1A所示。
在这里,(N+1)RAID配置表示这样一种配置,即,其中,在(N+1)个盘中,N个盘处理数据带,而一个盘处理奇偶校验带。在图1A的示例中,一个条带包括分别分配给盘0到盘3共4个盘的数据D00到D03和分配给盘4的奇偶校验P00。从D00开始按标码的连续顺序排列和分配数据D00到D03。
用于读取这样存储的数据的常规读取处理不需要奇偶校验P00。因此,对于针对D00到D03的读取请求,不使用分配了奇偶校验的盘4。
如果在盘0到盘4中存储有多个条带,也可能要考虑到这样的读取请求,其中按照标码的连续顺序读取跨布不同条带的数据。当考虑到采用诸如这样的连续读取处理的性能时,有效的是,将作为下一条带的头部的数据D04分配给盘4,对于盘4已经在前一条带中分配了奇偶校验P00,并且尚未对盘4进行过任何存取。例如,如果每个条带中的头部数据的位置随着各条带偏移,那么数据和奇偶校验的分配如图1B所示。
对应于(N+1)RAID配置,通常以(N+1)个条带为周期进行数据和奇偶检验的映射。由于这里N=4,所以周期是5个条带。
接下来描述RAID 6的映射。RAID 6是应对多个盘的故障的RAID级别。RAID 6由(N+M)RAID配置来表示,并且与RAID 5中一样,保持每个条带的奇偶校验。由于分配了奇偶校验的M个盘对应于多个盘的故障,所以它为2个或者更多个。作为奇偶校验,通常使用与RAID 5等同的奇偶校验P以及不同于奇偶校验P的奇偶校验Q、R、S等。
在下面的说明中,为了应对两个盘的故障,使用了奇偶校验P和奇偶校验Q,令M=2。
如果将图1B所示的RAID 5的映射应用于RAID 6中的(4+2)RAID配置,则数据和奇偶校验的分配如图1C所示。通常,这是以(N+M)个条带为周期的分配,并且所有的盘都要既处理奇偶校验P又处理奇偶校验Q。
上述常规RAID 6的映射存在以下问题。
在图1C所示的RAID 6的映射中,同一盘只处理两个连续条带中的奇偶校验P和奇偶校验Q,而不处理数据。从连续读取性能的角度而言这不是所希望的。

发明内容
本发明的目的是执行映射以改进诸如RAID的存贮装置的连续读取性能,所述存贮装置通过使用两类或者更多类奇偶校验来获得数据冗余化。
根据本发明的存贮装置包括确定装置和控制装置,并通过对向N+M个存储装置分布并存贮包括N个数据带和M个不同类型的奇偶校验带在内的条带进行控制,来实现数据冗余化。
确定装置为每个条带中包括的N个数据带和M个奇偶校验带确定存贮目标存储装置,以避免当N+M个存储装置存储多个条带时,在两个连续条带之间向同一存储装置连续存储奇偶校验带。控制装置对向每个确定的存贮目标存储装置存贮N个数据带和两个或更多个奇偶校验带进行控制。


图1A是示出RAID 5中的条带的图;图1B是示出RAID 5中的映射的图;图1C是示出RAID 6中的映射的图;图2A是根据本发明的存贮控制器的原理图;图2B是示出第一存贮系统的构成图的图;图3是示出M=2时的第一映射的图;图4是示出M=2时的第二映射的图;图5是示出M=2时的第三映射的图;图6是示出M=2时的第四映射的图;图7是示出M=2时的第五映射的图;图8是示出M=3时的第一映射的图;图9是示出M=3时的第二映射的图;图10是示出M=3时的第三映射的图;图11是示出M=3时的第四映射的图;图12是示出用于提供程序和数据的方法的图;图13是示出第二存贮系统的构成图;以及图14是示出第三存贮系统的构成图。
具体实施例方式
下面参照附图,详细说明用于实现本发明的优选实施例。
图2A是根据本发明的存贮控制器的原理图。图2A中的存贮控制器101包括确定装置111和控制器112,并通过对向N+M个存储装置102-1、102-2、……、102-(N+M)分布并存储条带(包括N个数据带和M个不同类型的奇偶校验带)进行控制来实现数据冗余化。
确定装置111为N个数据带和M个不同类型的奇偶校验带确定存贮目标存储装置,以避免当存储装置102-1、102-2、……、102-(N+M)存储多个条带时在两个连续条带之间将奇偶校验带连续存储至同一存储装置。控制器112对向每个确定的存贮目标存储装置存储N个数据带和两个或更多个奇偶校验带进行控制。
在(N+M)RAID配置中,每个存储装置相当于一个或更多个磁盘装置。如果存储了多个条带,则将一个条带内的数据和奇偶校验分散存储至存储装置102-1、102-2、……、102-(N+M),使得同一存储装置不在两个连续的条带之间连续处理相同类型或不同类型的奇偶校验。这样,就均衡化了当顺序读取跨布不同条带的数据时对(N+M)个存储装置的存取频率。
存贮控制器101例如对应于稍后将描述的图2B中的控制器211、图13中的主机总线适配器1311或图14中的主机装置1401。
根据本发明,在其中将包括N个数据带和M个不同类型的奇偶校验带在内的条带分布并存储在N+M个存储装置中的存贮装置中,增强了顺序读取的性能。
图2B示出了本实施例中的存贮系统的构成示例。图2B中的存贮系统包括主机装置201和RAID装置202。RAID装置202对应于包括控制器211和盘0到盘5共六个盘在内的存贮装置。
每个盘包括一个或更多个磁盘装置,主机装置201将所有的盘视为一个存储装置并执行数据的读取/写入。连接到控制器211的盘的数量不必限于6个。
控制器211包括处理器221、存储器222以及缓存存储器223,并控制对盘0到盘5的存取。处理器221通过执行存储器222中存储的程序来控制存取。
下面参照图3到图11描述采用(N+M)RAID配置的本实施例中的映射示例。
(1)第一映射如果在图1C所示的(4+2)RAID配置中考虑连续读取的性能,对于每个条带将分配偏移两个盘,以使得奇偶校验不连续,则映射如图3所示。在这个映射中,分别集总分配数据和奇偶校验,并且处理相同类型奇偶校验的盘对于每个条带偏移M个盘。这样,由于同一盘绝不在两个连续条带中都处理奇偶校验,所以增强了连续读取的性能。
通常,在(N+M)RAID配置中,如果盘的数量(N+M)是奇偶校验数量(M)的倍数,则由于分配偏移M个盘,所以分配被确定为以(N+M)/M个条带为周期。这里,由于N=4且M=2,所以是以3个条带为周期。然而,在图3的映射中,奇偶校验P未分配给盘1、盘3或盘5,而奇偶校验Q未分配给盘0、盘2或盘4。
另一方面,在一个盘出现故障时的读取处理或重建处理中,考虑到性能等,执行只使用奇偶校验P而不使用奇偶校验Q的与RAID 5等同的处理。这样,由于根本未分配有奇偶校验P的盘的负载与除前面以外的盘的负载不同,所以存在改进映射的余地。作为用于改进奇偶校验映射的方案,可以考虑下面的(2)和(3)。
(2)第二映射如图4所示,创建并分配了其中按奇偶校验P和Q的顺序排列它们的条带以及其中按奇偶校验Q和P的顺序排列它们的条带,使得所有的盘都要处理奇偶校验P和Q。从而,处理P和Q的盘每(N+M)/M个条带循环一次。因此,分配以(N+M)个条带为周期进行。
(3)第三映射如图5所示,P和Q不是连续分配的,而是相隔一个或更多个盘。这里,P和Q被分配得相隔N/M(=2)个盘,数据和奇偶校验的分配对于每个条带偏移一个盘。因此,所有的盘都处理P和Q。
另外,由于在一个条带内将P和Q分配得相隔N/M个盘,所以盘处理P或Q的机会在(N+M)/M个条带的周期中被均等化了。然而,数据和奇偶校验的分配都与RAID 5中的不同。
上面两种改进方案,是用于减少RAID 6中作为不相同的奇偶校验带且具有不同作用的奇偶校验P和Q所引起的负载差异的方案。两种方案中改进方案(2)被认为更有效。
另外,数据带的作用可能不同于奇偶校验P和奇偶校验Q的作用。例如,在称为行-对角线奇偶校验(RDP)系统的RAID 6中,利用RAID 5的数据和奇偶校验P创建对角线奇偶校验Q。然而,一个条带中的各带的作用都不相同。具体来说,对于数据或P中的一个带,使用整个带来创建对角线奇偶检验Q。另一方面,在剩余的数据和奇偶校验P带中,仅使用其一部分来创建Q。
因此,当在一个盘出现故障时的重构处理中恢复奇偶校验Q时,处理数据的盘与处理奇偶校验P的盘之间就产生了负载差异。因此,存在改进映射的余地。作为用于改进数据映射的方案,可以考虑下面的(4)和(5)。
(4)第四映射例如,如果使用整个P带来创建Q,则随着P的更新会产生更多的Q的更新。换句话说,由于为更新少量数据而增加了Q的更新,所以这不是很有效。因此,将用来创建Q的整个带确定为被指配为其中一个数据带,而不是P带。
暂时假定条带中的头部数据带是使用所有数据来创建Q的带。这样,由于存在处理头部数据的盘和不处理头部数据的盘,所以在图3和图4的映射中,负载不是均等分布的。例如,在图3的映射中,将头部数据分配给盘0、盘2和盘4,而未将头部数据分配给盘1、盘3或盘5。
为了减少诸如此类的不均衡,针对图6中所示的数据带执行在图4的映射中执行的对P和Q的循环重排,数据和奇偶校验相对所配置的M个盘的映射顺序是每(N+M)/M个条带循环一次。
例如,前三个条带601到603的分配与图4中相同,并且将每个条带的头部数据D00、D04和D08分布给盘0、盘4和盘2。
在后面的三个条带604到606中,尽管P和Q的分配与图4中相同,但与图4中相比数据的分配在两个相邻盘间是颠倒的。具体来说,在条带604中D0c和D0d的分配与图4中的相反,并且D0e和D0f的分配也与图4中的相反。对于条带605和606的分配也是同样的。作为如此的数据重排的结果,将每个条带中的头部数据D0c、D10和D14分布给盘1、盘5和盘3。
因此,在图6的映射中,可以将P、Q和头部数据分布并分配给所有的盘。
(5)第五映射该映射是上面(4)中的改进方案的变型。如图7所示,尽管奇偶校验的分配和图3中相同,但数据的分配不同。在该映射中,头部数据在条带中的位置是通过在紧接的前一条带中用于处理奇偶校验的M个盘中对于每个条带错开所述位置来选定的。然而,由于第2到第M数据可能被分配给同样在紧接的前一条带中用于处理数据的盘,所以该方案在顺序读取性能方面不如(4)中的改进方案。
尽管图3到图7示出了M=2时的映射示例,这些映射也可应用于M=3的情况下的RAID配置。图8、9、10和11示出了将(1)、(2)、(3)以及(4)中的映射分别应用于(3+3)RAID配置的示例。
控制器211根据RAID配置如上所述地执行映射处理,以便对盘执行数据或奇偶校验的读取/写入访问。因此,下面将具体描述在(N+M)RAID配置中由控制器211执行的映射处理。
在下面的解释中,与C语言中一样,运算符“/”表示整除的商,运算符“%”表示整除的余数。首先,对映射处理所用的变量的定义进行解释。
●RAID配置中的盘的数量(N+M)(N+M)是构成RAID组的盘的数量。RAID组包括总共(N+M)个盘,其中N个盘用于数据容量,而M个盘用于奇偶校验容量。这里,将盘的总数(N+M)设为奇偶校验用盘数量M的倍数。
●条带大小SS表示一个条带的数据容量(块等的数量),并与条带深度(stripedepth)相同。
●分配给数据的地址aa是顺序分配给除奇偶检验外的数据的地址,是一个为0或更大的整数。通过指定地址a执行对来自主机装置201的数据的I/O请求。
●条带号ii是表示与其对应的数据和奇偶校验所属条带的编号,是一个为0或更大的整数。i是根据数据地址a和RAID配置来确定的,并由下面的公式给出i=a/(N*S)●带号jj是表示属于条带的带的顺序的数字。将满足0≤j<(N-1)的j指配给数据带。由下面的公式给出数据带的j,并根据数据地址a顺序地存储数据。
j=(a%(S*N))/S将满足N≤j≤(N+M-1)的j指配给奇偶校验带。例如,将j=N指配给奇偶校验P,将j=N+1指配给奇偶校验Q。
●盘号dd是指定在构成RAID系统的盘中将成为访问目标的盘的编号,满足0≤d≤(N+M-1)。根据要实现的映射方法,以i和j为参数来确定d。
下面描述使用前述变量定义的映射处理。在该映射处理中,依照映射方法,根据数据地址a来确定条带号i和带号j,从而确定访问目标的盘号d。
1、传统映射在图1C所示的传统映射方法中,盘号d每次偏移一个盘。d由下面的公式计算d=(j+i*(N+M-1))%(N+M)2、第一映射在图3和图8所示的映射方法中,盘号d偏移奇偶校验的数量。d由下面的公式计算d=(j+(i*N))%(N+M)3、第二映射在图4和图9所示的映射方法中,M个奇偶校验的阵列按前述第一映射循环。针对数据的d与第一映射中的相同,并由下面的公式计算d=(j+(i*N))%(N+M)然而,对于奇偶校验,将每个条带中分配有奇偶校验的盘中的头盘的编号确定为ptop,并由下面的公式计算ptopptop=(N+(i*N))%(N+M)对于奇偶校验,由下面的利用ptop的公式来计算dd=ptop+(j-N+(M-1)*(i/(N+M)/M)%M4、第三映射在图5和图10所示的映射方法中,奇偶校验不是连续分布的,盘号d每次偏移一个盘。对于数据,d由下面的公式计算d=(i*(N+M-1)+j/(N/M)*((N+M)/M+j%(N/M))%(N+M)另一方面,对于奇偶校验,d由下面的公式计算d=(i*(N+M-1)+(j-N)*((N+M)/M)+(N/M))%(N+M)5、第四映射在图6和图11所示的映射方法中,还将前述第二映射中的M个奇偶校验的循环应用于数据,并将M个数据的阵列作为一组按组进行循环。在此情况下,由下面的公式计算奇偶校验和数据的组的总数gnumgnum=(N+M)/M由下面的公式给出数据或奇偶校验所属组的编号gi和在组中的序号gjgi=j/Mgj=j%M如果将组中数据或奇偶校验所属的头盘的编号确定为gtop,那么gtop由下面的公式计算gtop=(gi*M+i*N)%(N+M)d由下面的利用该gtop的公式来计算d=gtop+((gj+(M-1)*(i/gnum))%M控制器211以对应于由上面公式获得的d的盘为访问目标来执行数据或奇偶校验的读取/写入。
图12示出了用于提供控制器211的处理器221为处理使用的程序和数据的方法。存储在外部装置1201(如信息处理器)或移动记录介质1202中的程序和数据被加载到RAID装置202的存储器222。
外部装置1201产生携带有所述程序和数据的载波信号并通过通信网络上的任意传输介质将该信号传送给RAID装置202。移动记录介质1202是任意的计算机可读记录介质,如存储卡、软盘、光盘或磁-光盘。处理器221利用所述数据执行所述程序,并执行必要的处理。
图13和图14示出了存贮系统的其它配置示例。图13示出了安装在主机装置上的主机总线适配器控制盘访问的示例。图14示出了安装在主机装置中的软件控制盘访问的示例。在任一配置中,都如RAID装置202中那样提供了必需的程序和数据。
图13中的存贮系统包括主机装置1301和盘0到盘5。主机装置1301包括主机总线适配器1311。主机总线适配器1311包括处理器1321、存储器1322和缓存存储器1323,并控制对盘0到盘5的存取。此时,处理器1321运行存储器1322中存储的程序,以执行前述映射处理。
图14中的存贮系统包括主机装置1401和盘0到盘5。主机装置1401包括处理器1411和存储器1412,并控制对盘0到盘5的存取。此时,处理器1411运行存储器1412中存储的程序,以执行前述映射处理。
另外,尽管在前述实施例中使用磁-光盘装置作为盘装置,但本发明也可应用于使用诸如光盘装置、磁-光盘装置以及其它存储装置(如磁带装置)的存贮系统。
权利要求
1.一种存贮控制器,通过对向N+M个存储装置分布并存贮包括N个数据带和M个不同类型的奇偶校验带在内的条带进行控制,来实现数据冗余化,该存贮控制器包括确定装置,用于为每个条带中包括的N个数据带和M个奇偶校验带确定存贮目标存储装置,使得在所述N+M个存储装置存储多个条带时,在两个连续条带之间不向同一存储装置连续地存储奇偶校验带;和控制器,用于对向每个确定的存贮目标存储装置存储所述N个数据带和两个或更多个奇偶校验带进行控制。
2.如权利要求1所述的存贮控制器,其中,所述确定装置确定所述存贮目标存储装置,使得在所述多个条带中包括的奇偶校验带被均等地分布在所述N+M个存储装置中。
3.如权利要求2所述的存贮控制器,其中,所述确定装置确定所述存贮目标存储装置,使得向其存储同一类型奇偶校验带的存储装置的编号对于每个条带偏移M。
4.如权利要求2或3所述的存贮控制器,其中,所述确定装置根据指定的数据地址来确定表示数据或奇偶校验所属条带的条带号i和表示条带中数据或奇偶校验所属带的带号j,并通过使用以下公式的计算来获得向其存储数据或奇偶校验的存储装置的存储装置号d,在该公式中%为表示整除中的余数的运算符d=(j+(i*N))%(N+M)。
5.如权利要求2所述的存贮控制器,其中,所述确定装置确定所述存贮目标存储装置,使得所述多个条带中包括的同一类型奇偶校验带被均等地分布在所述N+M个存储装置中。
6.如权利要求5所述的存贮控制器,其中,所述确定装置确定所述存贮目标存储装置,使得存储同一类型奇偶校验带的存储装置的编号对于每个条带偏移M,并且存储M个奇偶校验带的存储装置的编号每(N+M)/M个条带循环一次。
7.如权利要求5或6所述的存贮控制器,其中,所述确定装置根据指定的数据地址来确定表示数据或奇偶校验所属条带的条带号i和表示条带中数据或奇偶校验所属带的带号j,并且当由i和j确定存储装置号d时,对于数据的存贮目标,利用下面公式的计算来确定d,在该公式中%运算符表示整除中的余数d=(j+(i*N))%(N+M),对于奇偶校验的存贮目标,通过下面公式的计算来确定d,在该公式中/运算符表示整除中的商ptop=(N+(i*N))%(N+M),d=ptop+(j-N+(M-1)*(i/(N+M)/M))%M。
8.如权利要求5所述的存贮控制器,其中,所述确定装置确定所述存贮目标存储装置,使得存储同一类型奇偶校验带的存储装置的编号对于每个条带偏移1,并且使得在各个条带中存储M个奇偶校验带的存储装置的编号不连续。
9.如权利要求5或8所述的存贮控制器,其中,所述确定装置根据指定的数据地址,确定表示数据或奇偶校验所属条带的条带号i和表示条带中数据或奇偶校验所属带的带号j,并且当由i和j确定存储装置号d时,对于数据的存贮目标,通过使用下面公式的计算得到d,在该公式中,/运算符表示整除中的商,%运算符表示整除中的余数d=(i*(N+M-1)+j/(N/M)*((N+M)/M+j%(N/M))%(N+M),而对于奇偶校验的存贮目标,通过使用下面公式的计算来确定dd=(i*(N+M-1)+(j-N)*((N+M)/M)+(N/M))%(N+M)。
10.如权利要求1或5所述的存贮控制器,其中,所述确定装置确定所述存贮目标存储装置,使得在所述多个条带中包括的数据带被均等地分布在所述N+M个存储装置中。
11.如权利要求10所述的存贮控制器,其中,所述确定装置确定所述存贮目标存储装置,使得存储同一类型奇偶校验带的存储装置的编号对于每个条带偏移M,并且存储M个奇偶校验带的存储装置的编号每(N+M)/M个条带循环一次。
12.如权利要求10或11所述的存贮控制器,其中,所述确定装置根据指定的数据地址,确定表示数据或奇偶校验所属条带的条带号i和表示条带中数据或奇偶校验所属带的带号j,并通过下面公式的计算得到向其存储数据或奇偶校验的存储装置的存储装置号d,在该公式中/运算符表示整除中的商,%运算符表示整除中的余数gtop=(gi*M+i*N)%(N+M),d=gtop+((gj+(M-1)*(i/gnum))%M。
13.一种存贮装置,包括N+M个存储装置,用于分布并存储包括N个数据带和M个不同类型的奇偶校验带在内的条带,以便实现数据冗余化;确定装置,用于为每个条带中包括的N个数据带和M个奇偶校验带确定存贮目标存储装置,使得在所述N+M个存储装置存储多个条带时,在两个连续条带之间不向同一存储装置连续地存储奇偶校验带;以及控制器,用于对向每个确定的存贮目标存储装置存贮所述N个数据带和两个或更多个奇偶校验带进行控制。
14.一种记录介质,向其记录了一种用于处理器的程序,该程序用于通过对向N+M个存储装置分布并存贮包括N个数据带和M个不同类型的奇偶校验带在内的条带进行控制来实现数据冗余化,其中,该程序使得处理器能够执行以下处理为每个条带中包括的N个数据带和M个奇偶校验带确定存贮目标存储装置,使得在所述N+M个存储装置存储多个条带时,在两个连续条带之间不在同一存储装置中连续地存储奇偶校验带;和向每个确定的存贮目标存储装置存储所述N个数据带和两个或更多个奇偶校验带。
15.一种存贮控制方法,用于通过向N+M个存储装置分布并存贮包括N个数据带和M个不同类型的奇偶校验带在内的条带来实现数据冗余化,其中,该存贮控制方法执行以下操作为每个条带中包括的N个数据带和M个奇偶校验带确定存贮目标存储装置,使得在所述N+M个存储装置存储多个条带时,在两个连续条带之间不向同一存储装置连续地存储奇偶校验带;和向每个确定的存贮目标存储装置存储所述N个数据带和两个或更多个奇偶校验带。
16.一种载波信号,携带有一种用于处理器的程序,该程序用于通过对在N+M个存储装置中分布并存贮包括N个数据带和M个不同类型的奇偶校验带在内的条带进行控制来实现数据冗余化,其中,所述程序使得处理器能够执行以下处理为每个条带中包括的N个数据带和M个奇偶校验带确定存贮目标存储装置,使得在所述N+M个存储装置存储多个条带时,在两个连续条带之间不向同一存储装置连续地存储奇偶校验带;和向每个确定的存贮目标存储装置存储所述N个数据带和两个或更多个奇偶校验带。
17.一种存贮控制器,用于通过对在N+M个存储装置中分布并存贮包括N个数据带和M个不同类型的奇偶校验带在内的条带进行控制来实现数据冗余化,该存贮控制器包括确定单元,用于为每个条带中包括的N个数据带和M个奇偶校验带确定存贮目标存储装置,使得在所述N+M个存储装置存储多个条带时,在两个连续条带之间不向同一存储装置连续地存储奇偶校验带;和控制单元,用于对向每个确定的存贮目标存储装置存贮所述N个数据带和两个或更多个奇偶校验带进行控制。
全文摘要
存贮控制器及存贮控制方法。存贮目标存储装置,其中将每个条带中包括的N个数据带和M个奇偶校验带确定为,在向N+M个存储装置分布并存储分别包括N个数据带和M个不同类型奇偶校验带的多个条带时,在两个连续条带之间不向同一存储装置连续地存储奇偶校验带。
文档编号G06F12/00GK1790281SQ200510066269
公开日2006年6月21日 申请日期2005年4月25日 优先权日2004年12月14日
发明者望月信哉, 伊藤实希夫, 大黑谷秀治郎, 池内和彦, 高桥秀夫, 绀田与志仁, 佐藤靖丈, 越智弘昭, 牧野司, 久保田典秀 申请人:富士通株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1