WO2017183089A1 - Computer, computer system, and program - Google Patents

Computer, computer system, and program Download PDF

Info

Publication number
WO2017183089A1
WO2017183089A1 PCT/JP2016/062300 JP2016062300W WO2017183089A1 WO 2017183089 A1 WO2017183089 A1 WO 2017183089A1 JP 2016062300 W JP2016062300 W JP 2016062300W WO 2017183089 A1 WO2017183089 A1 WO 2017183089A1
Authority
WO
WIPO (PCT)
Prior art keywords
command
storage
host
information
remote
Prior art date
Application number
PCT/JP2016/062300
Other languages
French (fr)
Japanese (ja)
Inventor
洋 中越
智大 川口
Original Assignee
株式会社日立製作所
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 株式会社日立製作所 filed Critical 株式会社日立製作所
Priority to PCT/JP2016/062300 priority Critical patent/WO2017183089A1/en
Publication of WO2017183089A1 publication Critical patent/WO2017183089A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data

Definitions

  • the present invention relates to software storage.
  • SAN Storage Area Network
  • the storage system can be protected from connection by a malicious host by restricting the hosts connected to the SAN to trusted hosts.
  • a host used by a general user is also connected to the IP network. Therefore, software storage has a risk of peeping or unauthorized access to communication between storages flowing through the IP network.
  • Patent Document 1 discloses a technology for performing iSCSI communication on a communication path established between a host and a storage using IPsec.
  • IPsec is a communication protocol that encrypts communication contents by encryption encapsulation and adds a dedicated header called an authentication header. Encryption protects data from peeping of IP packets and secures communication reliability with a dedicated header, thereby limiting access from unauthorized hosts.
  • IPsec used in iSCSI can realize protection of communication data in the IP layer, but cannot secure security in the SCSI layer.
  • basic commands such as data reading and writing are transferred with a data length of 10 bytes (hereinafter also simply referred to as “B”).
  • B data length of 10 bytes
  • Conventional storage systems use vendor-specific commands when communicating with other storage systems via the SCSI protocol. Specifically, when copying in units of volumes between storage systems, it is necessary to maintain consistency between the host write order to the copy source volume and the data copy order to the copy destination volume. .
  • Conventional storage systems use vendor-specific commands for such complex control. In general, a vendor-specific command does not fit in the SCSI protocol 10B, and has a command size of 16B or 32B.
  • a large buffer such as 32B is prepared for command processing in an instance in which software storage is installed.
  • the instance may be in any form as long as it provides an OS for operating the software storage, a CPU, a memory, a drive, and a network function necessary for the OS operation.
  • the instance may be a machine directly installed on hardware, a virtual machine operating on a hypervisor, or may be in a container area managed by container management software.
  • iSCSI and IPsec software storage can communicate with only authorized hosts on the SCSI layer.
  • the host can send and receive a SCSI command for performing I / O and the like to the software storage.
  • an unauthorized application is installed on the host even if the user operating the host is not malicious. Such an unauthorized application may then send an unauthorized command to the software storage. Normally, an illegal command is longer than 10B. However, since the software storage has a large size buffer, an illegal command is received and an attempt is made at this time.
  • An object of the present invention is to provide a technique for improving the security against an illegal command while allowing a command whose software storage exceeds a predetermined command size.
  • a computer includes a processor that executes a storage program for processing an I / O command from a host as a storage and a command including remote copy with the remote storage, and the storage
  • a memory storing a program and information for the processor to execute the storage program, and the memory limits a command type individually permitted to a host or a remote storage connected to the storage.
  • Command control information is stored in advance, and when the processor receives a command from the host or the remote storage, the processor refers to the command control information and determines whether the command is a command permitted to the command request source. Judgment, The command executed by the storage program when it is acceptable.
  • the command type permitted for each host or remote storage can be set by the command control information, it is possible to improve the security against illegal commands while allowing a predetermined type of command.
  • FIG. 1 is a block diagram illustrating a functional configuration example of a computer system 10 according to Embodiment 1.
  • FIG. 2 is a block diagram showing an example of a hardware configuration of a computer system 10.
  • FIG. It is a figure which shows an example of the structure information table. It is a figure which shows an example of the key information table. It is a figure which shows an example of the pair information table. It is a flowchart which shows the process of the initial setting of the computer system 10 by the orchestrator 130 of the management infrastructure 103, or an administrator.
  • 3 is a block diagram showing a detailed configuration of a SCSI access control unit 113.
  • FIG. 6 is a diagram illustrating an example of a SCSI command list 205.
  • FIG. 3 is a flowchart showing command processing in a command processing unit 123 of a SCSI control unit 111.
  • 4 is a flowchart of an access control process by a SCSI access control unit 113.
  • It is a block diagram which shows the function structural example of the computer system 20 which concerns on Example 2.
  • FIG. It is the figure which showed the connection of the SCSI access control part 113 in Example 2, and each other part.
  • FIG. 1A is a block diagram illustrating a functional configuration example of the computer system 10 according to the first embodiment.
  • the computer system 10 includes hosts 100 and 101, a remote storage 102, a management infrastructure 103, and a software storage instance 104.
  • FIG. 1B is a block diagram illustrating a hardware configuration example of the computer system 10.
  • the software storage server 104A is a computer on which the above-described software storage instance 104 is created.
  • the software storage server 104A is connected to the hosts 100 and 101, the remote storage 102, and the management infrastructure 103 by an IP network 900.
  • the remote storage 102 is a conventional storage.
  • Software storage instance 104 is an instance in which a storage function is realized by software.
  • the software storage instance 104 is created on the computer and operates to make the computer function as a storage.
  • the software storage instance 104 may be created on one computer, or may be created by distributing functions on a plurality of computers.
  • the software storage instance 104 may be created on a computer prepared exclusively or on a computer that is also used as another device.
  • the software storage server 104A is a computer capable of processing a plurality of data communication protocols.
  • the software storage server 104A uses iSCSI (Internet Small Computer System Interface) as an example of a data communication protocol to perform data communication with the hosts 100 and 101, the remote storage 102, and the management infrastructure 103.
  • iSCSI Internet Small Computer System Interface
  • the software storage server 104A performs data communication using iSCSI, but the present invention is not limited to this.
  • the software storage server 104A includes an FCP (Fibre Channel Protocol), an iSCSI (Internet Small Computer System), an NFS (Network File System, and a CIFS (CommonHTP).
  • the data communication protocol may be used to perform data communication with the hosts 100 and 101, the remote storage 102, and the management infrastructure 103.
  • the software storage server 104A receives an I / O request from the hosts 100 and 101 via the IP network 900, executes the I / O processing, and then sends a processing result (I / O response) to the host 100, Return to 101.
  • the software storage server 104A may be fixedly installed in a facility such as a data center, or may be movable like a container type, and the geographical position may be changed as necessary. Further, the software storage server 104A may be configured by a plurality of geographically separated computers instead of a single computer.
  • the management infrastructure 103 is a computer that manages the system configuration of the computer system 10, various settings for operating the remote storage 102, software executed by the software storage server 104A, and various settings used when the software storage server 104A executes the software. It is.
  • the management infrastructure 103 stores a management program, and executes various processes including the management function described above by executing the management program.
  • the management infrastructure 103 is a pair indicating the host 100, 101 or remote storage 102 connected as a pair with the software storage instance 104, and the command type permitted to be executed for each host 100, 101, or remote storage 102. It manages information and notifies the software storage instance 104 as appropriate.
  • the IP network 900 is, for example, the Internet, a LAN (Local Area Network), a WAN (Wide Area Network), a SAN (Storage Area Network), a wireless LAN, a mobile phone communication network, and the like.
  • the network 220 may be composed of a plurality of types of communication networks instead of a single communication network.
  • Hosts 100 and 101 are servers on which a client operated by a user or an application connected to a remote storage 102 or a software storage instance 104 is installed.
  • the hosts 100 and 101 may be fixedly installed in a facility such as a data center, or may be movable such as a container type and change the geographical position.
  • a mobile phone including a smartphone or a general-purpose computer such as a personal computer is assumed.
  • the hosts 100 and 101 may be constituted by a plurality of different computers instead of a single device.
  • the software storage server 104A includes a memory 420, an HBA (Host Bus Adapter) 431, an NIC (Network Interface Card) 432, a disk device 460, and a CPU (Central) that is a control arithmetic unit connected thereto.
  • Processing unit 410.
  • another type of storage resource may be employed.
  • another type of communication interface device may be employed.
  • the CPU 410 executes a computer program stored in memory 420.
  • the CPU 410 has a plurality of CPU cores 411 that are arithmetic units. Each CPU core 411 can operate independently and executes a computer program in parallel.
  • the CPU core 411 is a processor core that reads various programs including a storage program, an OS (Operating System), and an I / O processing program from the memory 420 and executes them.
  • the CPU core 411 may be simply called a processor.
  • the memory 420 stores computer programs and other data.
  • the memory 420 may include a cache that temporarily stores data received from the hosts 100 and 101 and data to be transmitted to the hosts 100 and 101.
  • the HBA 431 and the NIC 432 are connected to the IP network 900 and used for data communication with the management infrastructure 103 and the hosts 100 and 101.
  • the disk device 460 includes an SSD (Solid State Drive) 451 and an HDD (Hard Disk Drive) 452 which are secondary storage devices of the software storage server 104A.
  • the secondary storage device stores I / O processing data as storage.
  • the disk device 460 is typically the SSD 451 and the HDD 452 illustrated in FIG. 1B, but may be anything as long as it can store block format data.
  • the disk device 460 is illustrated as an example of the storage device, but the present invention is not limited to this.
  • the disk device 460 may be a device including a tape archive or an optical disk library such as a DVD or a CD.
  • the SSD 451 and the HDD 452 are collectively referred to as a disk device 460.
  • the disk device 460 may be a storage device.
  • the management infrastructure 103 includes an orchestrator 130, an information device management unit 131, a storage access management unit 132, a configuration information table 133, a key information table 134, and a pair information table 135.
  • the orchestrator 130 is a functional unit that prepares and executes operations manually executed by an administrator.
  • the orchestrator 130 enables the administrator to set the provisioning in the computer system 10 or the system configuration of the computer system 10 to each device without manually performing the operation.
  • the information device management unit 131 collects and manages the configuration information of the hosts 100 and 101, the remote storage 102, the management infrastructure 103, and the software storage instance 104. Information collected by the information device management unit 131 is stored in the configuration information table 133.
  • the storage access management unit 132 manages information related to the connections between the hosts 100 and 101 and the remote storage 102 and the software storage instance 104.
  • Information managed by the storage access management unit 132 includes a key information table 134 and pair information 135.
  • the key information table 134 is a table for storing key information required to securely connect the hosts 100 and 101 and the remote storage 102 and the software storage instance 104. In this embodiment, a method using a public key authentication method is adopted. However, the present invention is not limited to this. In this embodiment, the key information table 134 manages a pair of a public key and a secret key necessary for communication using the public key authentication method.
  • the pair information 135 is a table for managing information on the form of connection with the hosts 100 and 101 connected to the software storage instance 104 or the remote storage 102.
  • the software storage instance 104 includes a software storage 110, a SCSI control unit 111, an IP control unit 112, a SCSI access control unit 113, and a drive group 114, and is an instance that provides a storage service as software.
  • An instance may be provided in any form as long as an OS for operating software storage and a CPU, memory, drive, and network functions necessary for OS operation are provided.
  • the instance may be a machine in which a program is directly installed on hardware, a virtual machine that operates on a hypervisor, or a container area managed by container management software.
  • the software storage 110 includes a command control unit 120, a data control unit 121, and a drive control unit 122.
  • the command control unit 120 passes the SCSI command received from the SCSI control unit 111 to the data control unit 121, and passes the SCSI command generated by the data control unit 121 to the SCSI control unit 111.
  • the data control unit 121 reads and writes data to the drive group 114 by communicating with the drive control unit 122 according to the SCSI command received from the command control unit 120.
  • the drive control unit 122 controls the drive group 114 to read data from the drive group 114 and write data to the drive group 114 requested by the data control unit 121.
  • the SCSI control unit 111 is a protocol stack that includes a command processing unit 123 that interprets SCSI commands and is in charge of transmission and reception of SCSI commands.
  • the IP control unit 112 includes an IPsec processing unit 124 that performs IPsec processing, and is a protocol stack in charge of IP communication.
  • the CPU 410 serving as the IP control unit 112 acquires an encryption key for encrypting communication with the host 100, 101 or remote storage 102 from the management infrastructure 103, and uses the encryption key with the host 100, 101 or remote storage 102. Used to encrypt communication. Since the software storage instance 104 encrypts communication with the hosts 100 and 101 or the remote storage 102, security against peeping can be improved.
  • the IP control unit 112 may control the transport layer such as TCP and UDP. In this embodiment, the transport layer and the control for the transport layer are not particularly limited.
  • the SCSI access control unit 113 performs access control at the SCSI layer.
  • the CPU 410 reads and executes the storage program stored in the memory 420.
  • the storage program is a program for processing I / O commands from the hosts 100 and 101 and commands including remote copy with the remote storage 102 as storage.
  • the memory 420 also stores information for the CPU 410 to execute the storage program.
  • the memory 420 stores in advance command control information for limiting the command types individually permitted for the hosts 100 and 101 or the remote storage 102 connected to the storage.
  • the CPU 410 serving as the SCSI access control unit 113 refers to the command control information and determines whether or not the command is a command permitted to the command request source. If allowed, execute the command by the storage program.
  • the command type permitted for each host or remote storage can be set by the command control information, so that it is possible to improve the security against illegal commands while allowing a predetermined type of command. Further, the command control information further limits the command size permitted for each command type permitted for the hosts 100 and 101 or the remote storage 102.
  • the CPU 410 Based on the command control information, the CPU 410 sets the size of a buffer that holds a command to be processed, and when a command is received from the host 100 or 101 or the remote storage 102, if the command can be stored in the buffer, it is stored in the buffer.
  • Software storage can discard illegal commands based on the command size by setting an appropriate buffer size for the size of the allowed command. Can be prevented. Details of access control by the SCSI access control unit 113 will be described later with reference to FIGS. 5A and 5B.
  • FIG. 2A to 2C show various information managed by the management infrastructure 103.
  • FIG. 2A is a diagram illustrating an example of the configuration information table 133.
  • FIG. 2B is a diagram illustrating an example of the key information table 134.
  • FIG. 2C is a diagram illustrating an example of the pair information table 135.
  • the table T1 shown in FIG. 2A is an example of the configuration information table 133, and is a table that manages the state of system components.
  • the table T1 stores information indicating the state of each system component constituting the computer system 10.
  • the table T1 stores connection addresses, component names, types, and states for the hosts 100 and 101, the remote storage 102, and the software storage instance 104 as system components.
  • the information to be managed is not limited to this example.
  • the management infrastructure 103 acquires such information from each system component. Although this acquisition method is not specifically limited, For example, you may acquire by communication using protocols, such as SNMP. As another example, an agent for acquiring unique information is installed in each of the hosts 100 and 101, the remote storage 102, and the software storage instance 104, and the management infrastructure 103 receives information sent from the agent, It may be stored.
  • the table T2 shown in FIG. 2B is an example of the key information 134.
  • the table T2 is a table for storing encryption keys for maintaining a peer-to-peer secure connection between devices in the computer system 10 using iSCSI IPsec.
  • the IPsec encryption method is not limited, but here, as an example, a public key method is adopted. Therefore, the public key and public key of the public key method are stored in the table T2.
  • the public key method the public key is distributed to the authenticating device, and the secret key is distributed to the authenticating device. Even if the public key is made public, it will not be a security problem, but the private key should not be made public. Therefore, for example, when distributing the secret key to the host 101, care must be taken not to leak it to the outside.
  • the table T3 shown in FIG. 2C is an example of the pair information 135.
  • the table T3 is a table that stores pair information indicating logical connection states in which the hosts 100 and 101, the remote storage 102, and the software storage instance 104 are connected to each other.
  • the table T3 stores two components to be paired and the type of the pair.
  • the first line indicates that the host 101 and the software storage instance 104 constitute a logical connection, and the connection is a connection that performs only I / O.
  • the second row of the table T3 indicates that the remote storage 102 and the software storage instance 104 constitute a logical connection, and the connection is a connection for performing remote copy for copying volume data between the storages.
  • FIG. 3 is a flowchart showing the initial setting process of the computer system 10 by the orchestrator 130 of the management infrastructure 103 or the administrator.
  • the target of setting is the software storage instance 104.
  • the orchestrator 130 or the supervisor sets various settings related to the software storage instance 104 for the host 101, the remote storage 102, and the software storage instance 104.
  • the host 101 can connect only I / O, and the remote storage 102 can connect only the copy control command.
  • the host 100 is, for example, a low-reliability host or a host operated by a user in another department. Therefore, it is assumed that the host 100 cannot use I / O and copy control commands.
  • the remote storage 102 is fixed to the iSCSI initiator and the software storage instance 104 is fixed to the target for the sake of simplicity. To do. When data is copied bidirectionally, or copying is only in one direction from the remote storage 102 to the software storage instance 104, the copy control command needs to be exchanged in both directions. Both storage instances 104 need to be iSCSI initiators.
  • an orchestrator 130 or an administrator who automatically performs management work using a software program generated by the administrator connects the host 101 and the software storage instance 104 via the storage access management unit 132 of the management infrastructure 103.
  • a pair for performing only I / O is registered in the pair information table 135 (F1).
  • the orchestrator 130 or the administrator registers the remote storage 102 and the software storage instance 104 in the pair information table 135 as a pair for performing only remote copy via the storage access management unit 132 of the management infrastructure 103 ( F2). As a result, T3 is generated.
  • the orchestrator 130 or the administrator distributes the public key to the host 101 and the remote storage 102 (F3). Subsequently, the orchestrator 130 or the administrator distributes the secret key to the software storage instance 104 (F4).
  • data is copied bidirectionally between the remote storage 102 and the software storage instance 104, or copying is only in one direction from the remote storage 102 to the software storage instance 104, but the copy control command is bidirectional. If exchange is required, not only the public key but also the private key must be distributed to the software storage instance 104, and not only the private key but also the public key must be distributed to the remote storage 102.
  • the orchestrator 130 or the administrator sends the information described in the pair information table 135 and the information described in the configuration information table 133 to the SCSI access control unit 113 of the software storage instance 104 (F5).
  • the reception processing of the SCSI access control unit 113 will be described later with reference to another drawing.
  • FIG. 4 is a block diagram showing a detailed configuration of the SCSI access control unit 113.
  • the SCSI access control unit 113 includes a pair information reception unit 200, a SCSI command control information generation unit 201, a command buffer size notification unit 202, a confirmation request transmission / reception unit 203, and a confirmation request verification unit 204.
  • a list 205 and SCSI command control information 125 are held.
  • the pair information receiving unit 200 receives the information of the pair information table 135 and the information of the configuration information table 133 from the IP control unit 112.
  • the SCSI command control information generating unit 201 generates SCSI command control information based on the pair information received by the pair information receiving unit 200 and the SCSI command list 205.
  • the memory 420 holds command list information that prescribes a command size for each command type in advance.
  • the CPU 410 serving as the SCSI command control information generation unit 201 can be executed from the management infrastructure 103 that manages the system configuration for each host 100, 101 or remote storage 102 that is connected in a pair with the storage, and for each host or remote storage. Pair information indicating a command type is obtained, and command control information is generated based on the pair information and command list information. Since the command list is held in advance, the command control information can be generated based on the system configuration information obtained from the management infrastructure 103.
  • the command buffer size notifying unit 202 notifies the buffer size that the SCSI control unit 111 should prepare initially.
  • the confirmation request transmission / reception unit 203 receives the SCSI command validity confirmation request sent from the SCSI control unit 111 and sends the confirmation result returned from the confirmation request verification unit 204 to the SCSI control unit 111.
  • the confirmation request verification unit 204 verifies the SCSI command validity confirmation request sent from the SCSI control unit 111 via the confirmation request transmission / reception unit 203 and returns the verification result.
  • the SCSI command list 205 is a list table of SCSI commands and is used when generating SCSI command control information.
  • FIG. 5A is a diagram showing an example of the SCSI command list 205.
  • FIG. 5B is a diagram illustrating an example of the SCSI command control information 125.
  • FIG. 5A shows a table T4 as an example of the SCSI command list 205.
  • FIG. 5B shows a table T5 as an example of the SCSI command control information 125.
  • the SCSI command list 205 and the SCSI command control information 125 are not limited to the tables T4 and T5, respectively.
  • the table T4 shown in FIG. 5A is a table storing each SCSI command, the size of the command, and the type to which the command corresponds.
  • the first line describes a READ command that is a command for reading data.
  • the READ command has a command size of 10B and is a command for I / O.
  • READ and WRITE are commands for reading and writing data.
  • Both the READ command and the WRITE command have a command size of 10B.
  • COPY and SYNC are commands for copy processing and synchronization processing, respectively.
  • the command size of these commands is 32B.
  • the SCSI access control unit 113 sends the pair information to the SCSI command control information generating unit 201.
  • the SCSI command control information generation unit 201 filters the SCSI command list 205 with the received pair information to generate SCSI command control information 125.
  • An example of the generation result is the table T5.
  • the table T5 includes, as items, a connection destination host name, an IP address of the host, a command type permitted to the host, and a command size permitted to the host.
  • Table T5 exemplifies connection control information between the software storage instance 104 and the host 101 and remote storage 102. As described above, in the table T5, only the I / O command is permitted for the host 101 and only the copy control command is permitted for the remote storage 102.
  • the pair information receiving unit 200 receives the pair information on the first row of the table T3, the pair type “I / O” is used to filter the “type” item of the table T4. As a result, READ and WRITE commands are extracted. Subsequently, information regarding the host 101 which is pair target information included in the pair information is extracted from the configuration information sent together with the pair information. As a result, the SCSI command control information generation unit 201 can generate the table T5 as the SCSI command control information 125.
  • FIG. 6 is a diagram showing an initialization sequence of the SCSI control unit 111.
  • the SCSI control unit 111 particularly the command processing unit 123 that processes a SCSI command passed from the IP control unit 112, needs to secure a buffer for holding the received command. As shown in the table T4, since the SCSI command has a different size depending on the command content, the SCSI access control unit 113 notifies the command processing unit 123 of a buffer size that can hold the permitted SCSI command.
  • the command buffer size notifying unit 202 includes the SCSI control unit 111 as shown in FIG. 6.
  • the command processing unit 123 is notified of the maximum size among the permitted command sizes described in the SCSI command control information 125 (S1). Specifically, in the example of the table T5, the maximum size of 32B information is notified. Receiving the buffer size, the command processing unit 123 sets the buffer size to the notified size value (S2).
  • FIG. 7 is a flowchart showing command processing in the command processing unit 123 of the SCSI control unit 111.
  • the command processing unit 123 receives the SCSI command from the IP control unit 112 (F11), and transmits the received command and information regarding the transmission source to the SCSI access control unit 113 (F12).
  • the command processing unit 123 interprets the command (F14), and changes the contents of the command to the software storage 110. (F15).
  • the command processing unit 123 performs error processing without interpreting the command (F16).
  • the error handling performed here is not particularly limited. There are many specific examples, although neither is recommended.
  • the error process may be a process of ending without doing anything, or a process of notifying an error to the transmission source.
  • the information returned by the SCSI access control unit 113 to indicate whether the command is valid or invalid is not particularly limited.
  • the SCSI access control unit 113 returns a code indicating a confirmation result (for example, information indicating validity or fraud) and a size at which the command should be interpreted.
  • the command processing unit 123 interprets the command by the notified size.
  • FIG. 8 is a flowchart of the access control process by the SCSI access control unit 113.
  • the SCSI access control unit 113 receives the command transmitted by the SCSI control unit 111 and its transmission source information (F21), and determines whether or not the received command is a command permitted by the transmission source by using a table of the SCSI command control information 125. It judges using (F22).
  • the table T5 is referred to based on the transmission source information, and it is determined whether or not the command is a command permitted to the host 101. In the example of the table T5 shown in FIG. 5B, it is determined that the READ command is a permitted command, and at the same time, the permitted command size necessary for the interpretation is determined.
  • the table T5 is referred to based on the transmission source information, and it is determined whether or not the SYNC command is a command permitted to the host 101. As a result, it is found that the SYNC command is not permitted.
  • the SCSI access control unit 113 If it is determined in F22 that the received command is a command permitted by the transmission source, that is, it is determined to be valid, the SCSI access control unit 113 returns a message indicating that the command is valid to the SCSI control unit 111. (F23).
  • a confirmation code indicating validity and the size of the command are returned.
  • the SCSI access control unit 113 sends a message indicating that it is illegal to the SCSI control unit 111.
  • a confirmation code indicating fraud shall be returned. If it is illegal, it is not necessary to return the permitted command size, but in order to unify the format with the legal case, the permitted command size in the message may be set to zero and returned.
  • the CPU 410 executes a storage program, whereby the software storage 110 that operates as a storage, the command processing unit 123 that controls whether or not the processing by the software storage 110 is permitted for a command, and command processing
  • a SCSI access control unit 113 that manages command control information for individually determining whether each of the command request sources determines whether or not the unit 123 permits processing for the command is constructed.
  • the SCSI access control unit 113 includes a pair information receiving unit 200 that receives pair information from the management infrastructure 103, a command control information generating unit 201 that generates command control information based on the pair information and command list information, and command control information.
  • a command buffer size notifying unit 202 that notifies the command processing unit 123 of a command buffer size that is a size of a buffer that temporarily holds a command determined based on the command size specified in the command processing, and a command processing from the command processing unit 123
  • Confirmation request transmission / reception unit 203 that transmits / receives a control signal for inquiry processing as to whether to permit or not, and a command for which confirmation is requested by a control signal transmitted / received by confirmation request transmission / reception unit 203 is permitted.
  • a confirmation request verification unit 204 for determining whether or not .
  • the SCSI command processing authority can be granted in units of connection partners, and as a result, it is possible to prevent unauthorized SCSI commands from being processed and to improve security. be able to.
  • Example 2 will be described in detail with reference to the drawings.
  • the first embodiment is an example focusing on a software storage system constructed on an IP network.
  • the system of the present embodiment uses FCoE (Fibre Channel over Ethernet).
  • FCoE Fibre Channel over Ethernet
  • the present embodiment will be described mainly focusing on differences from the first embodiment. Also in the description of the present embodiment, the same numbers shown in all the drawings have the same functions, and thus the description thereof is omitted.
  • FIG. 9 is a block diagram illustrating a functional configuration example of the computer system 20 according to the second embodiment.
  • the computer system 20 includes hosts 300 and 301, a remote storage 302, a management infrastructure 303, and a software storage instance 304.
  • the host 300, host 301, remote storage 302, management infrastructure 303, and software storage instance 304 are equivalent to the host 101, remote storage 102, management infrastructure 103, and software storage instance 104 of FIG. Has function.
  • the software storage instance 304 includes an FCoE control unit 310 that performs FCoE protocol processing instead of the IP control unit 112 of FIG. 1A.
  • the management infrastructure 303 does not have the key information table 134 unlike the management infrastructure 103 of FIG. 1A. This is because FCoE does not implement an encryption function as a protocol. However, when an FCoE switch or the like having an encryption function that is not a standard specification is introduced into the computer system 20, key information equivalent to the key information table 134 of FIG. 1A is stored in the hosts 300 and 301, the remote storage 302, and the software storage 304. Prepare it. In this case, since it is not necessary to perform key distribution by the management infrastructure 303, in the initial setting of the computer system 20, only steps F1, F2, and F5 need be performed in the flowchart of FIG. There is no need to implement.
  • FIG. 10 is a diagram illustrating connections between the SCSI access control unit 113 and other units in the second embodiment.
  • an FCoE control unit 310 is connected to the pair information reception unit 200 instead of the IP control unit 112 in the first embodiment illustrated in FIG. 4.
  • IPsec is not used. Therefore, it is impossible to authenticate the legitimacy of the connection partner in communication using FCoE and to encrypt communication data transmitted to and received from the connection partner.
  • the SCSI access control unit 113 can provide a function equivalent to that of the first embodiment. Specifically, the SCSI access control unit 113 can grant the authority to use the SCSI command to the connection partner unit. As a result, the software storage instance 304 is not registered as a pair, that is, prohibits connection from the unpaired host 300, and grants the right to use only the I / O command to the paired host 301. It can be said that the storage 302 is authorized to perform only the remote copy control. As a result, it is possible to prevent the software storage instance 304 from processing an illegal SCSI command, and to improve security.
  • Pair information table 20 20 ... Computer system 200 ... Pair information reception , 201 ... SCSI command control information generation unit, 201 ... command control information generation unit, 202 ... command buffer size notification unit, 203 ... confirmation request transmission / reception unit, 204 ... confirmation request verification unit, 205 ... SCSI command list, 220 ... network , 300 ... Host, 301 ... Host, 302 ... Remote storage, 303 ... Management infrastructure, 304 ... Software storage instance, 310 ... FCoE control unit, 410 ... CPU, 411 ... CPU core, 420 ... Memory, 431 ... HBA, 432 ... NIC, 451 ... SSD, 452 ... HDD, 460 ... disk device, 900 ... IP network

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Storage Device Security (AREA)

Abstract

This computer, serving as storage, is provided with a processor which executes a storage program for processing commands such as I/O commands received from hosts and remote copy commands exchanged with remote storage, and a memory which stores the storage program and information used by the processor to execute the storage program, wherein: the memory stores, in advance, command control information for limiting command types which each host or remote storage establishing a connection with the aforementioned storage is permitted to use; and upon receiving a command from a transmitting host or remote storage, the processor refers to the command control information and determines whether the received command is a command that the transmitting host or remote storage is permitted to use, and if so, the processor executes the received command using the storage program.

Description

計算機、計算機システム、およびプログラムComputer, computer system, and program
 本発明はソフトウェアストレージに関する。 The present invention relates to software storage.
 近年、エンタープライズのクラウドへの移行が拡大している。その背景から、クラウド上でソフトウェアとして動作し、信頼性や性能が高いなどのエンタープライズ向けの機能を持つソフトウェアストレージに着目が集まっている。これまでのエンタープライズ向けストレージシステムは、SAN(Storage Area Network)と呼ばれる、ストレージを利用するホストが接続されるIPネットワークとは別のネットワークに接続し、管理されてきた。SANはファイバチャネルによるネットワークであり、そのネットワーク上ではSCSIコマンドがやり取りされる。 In recent years, the migration of enterprises to the cloud has expanded. Against this background, attention has been focused on software storage that operates as software on the cloud and has enterprise functions such as high reliability and performance. Conventional storage systems for enterprises have been managed by connecting to a network called SAN (Storage Area Network), which is different from an IP network to which a host using storage is connected. The SAN is a fiber channel network, and SCSI commands are exchanged on the network.
 一方、クラウド上で動作するソフトウェアストレージは、ホストと同一のIPネットワークに接続される。IPネットワークでは、SANのようにSCSIコマンドを送受信することができない。そのため、ホストとストレージは、iSCSIと呼ばれるSCSIコマンドをIPパケットに包んで送受信するプロトコルにより通信を行う。 On the other hand, software storage operating on the cloud is connected to the same IP network as the host. In an IP network, a SCSI command cannot be transmitted / received like a SAN. For this reason, the host and the storage communicate with each other by using a protocol for sending and receiving a SCSI command called iSCSI in an IP packet.
 SANは物理的にIPネットワークと分離されているので、SANへ接続するホストを信頼できるホストに制限することで、ストレージシステムを悪意あるホストによる接続から保護することができる。一方、IPネットワークには、一般ユーザの使用するホストも接続される。それゆえ、ソフトウェアストレージには、IPネットワークを流れるストレージ間通信ののぞき見や不正なアクセスの危険がある。 Since the SAN is physically separated from the IP network, the storage system can be protected from connection by a malicious host by restricting the hosts connected to the SAN to trusted hosts. On the other hand, a host used by a general user is also connected to the IP network. Therefore, software storage has a risk of peeping or unauthorized access to communication between storages flowing through the IP network.
 これに対して、特許文献1には、ホストとストレージがIPsecを用いて確立した通信路にてiSCSIの通信を行う技術が開示されている。IPsecは、暗号カプセル化により通信内容を暗号化し、認証ヘッダと呼ばれる専用のヘッダを付与する通信プロトコルである。暗号化により、IPパケットののぞき見からデータを保護し、専用のヘッダで通信の信頼性を確保することにより、不正なホストからのアクセスを制限することができる。 On the other hand, Patent Document 1 discloses a technology for performing iSCSI communication on a communication path established between a host and a storage using IPsec. IPsec is a communication protocol that encrypts communication contents by encryption encapsulation and adds a dedicated header called an authentication header. Encryption protects data from peeping of IP packets and secures communication reliability with a dedicated header, thereby limiting access from unauthorized hosts.
米国特許7353542号US Pat. No. 7,353,542
 しかしながら、iSCSIで利用されるIPsecは、IP層での通信データの保護を実現することができるが、SCSI層でのセキュリティの確保は実現できない。具体的に、SCSIプロトコルでは10バイト(以下単に「B」とも称す)のデータ長にて、データの読み書きなどの基本的なコマンドを転送する。一方、SCSIプロトコルでは、サイズも内容も任意のベンダ独自コマンドが許容される。 However, IPsec used in iSCSI can realize protection of communication data in the IP layer, but cannot secure security in the SCSI layer. Specifically, in the SCSI protocol, basic commands such as data reading and writing are transferred with a data length of 10 bytes (hereinafter also simply referred to as “B”). On the other hand, in the SCSI protocol, arbitrary vendor-specific commands of both size and contents are allowed.
 従来のストレージシステムは、SCSIプロトコルを介して、他のストレージシステムと通信する際にベンダ独自コマンドを利用していた。具体的に、ストレージシステム間でボリューム単位のコピーを実施する際には、コピー送信元のボリュームへのホストの書込み順と、コピー送信先のボリュームへのデータコピー順の整合性を取る必要がある。従来のストレージシステムは、このような複雑な制御にベンダ独自コマンドを利用していた。一般に、ベンダ独自コマンドはSCSIプロトコルの10Bには収まらず、16Bや32Bのコマンドサイズを持つ。 Conventional storage systems use vendor-specific commands when communicating with other storage systems via the SCSI protocol. Specifically, when copying in units of volumes between storage systems, it is necessary to maintain consistency between the host write order to the copy source volume and the data copy order to the copy destination volume. . Conventional storage systems use vendor-specific commands for such complex control. In general, a vendor-specific command does not fit in the SCSI protocol 10B, and has a command size of 16B or 32B.
 ここで、10Bを超えるベンダ独自コマンドにソフトウェアストレージを対応させるために、ソフトウェアストレージがインストールされたインスタンスにコマンド処理用として、例えば32Bのように、サイズの大きいバッファを用意するとする。なお、インスタンスは、ソフトウェアストレージが動作するためのOS、OS動作に必要なCPU、メモリ、ドライブ、およびネットワークの機能が提供されているものであれば、その形態は問わない。例えば、インスタンスは、ハードウェアに直接インストールされたマシンであってもよく、ハイパーバイザ上で動作する仮想マシンであってもよく、コンテナ管理ソフトウェアで管理されるコンテナ領域にあってもよい。 Here, in order to make software storage correspond to a vendor-specific command exceeding 10B, a large buffer such as 32B is prepared for command processing in an instance in which software storage is installed. Note that the instance may be in any form as long as it provides an OS for operating the software storage, a CPU, a memory, a drive, and a network function necessary for the OS operation. For example, the instance may be a machine directly installed on hardware, a virtual machine operating on a hypervisor, or may be in a container area managed by container management software.
 iSCSI及びIPsecを利用することで、ソフトウェアストレージは、許可されたホストのみとSCSIレイヤでの通信が可能となる。ホストはソフトウェアストレージに対して、I/Oなどを実施するためのSCSIコマンドを送受信できる。 Using iSCSI and IPsec, software storage can communicate with only authorized hosts on the SCSI layer. The host can send and receive a SCSI command for performing I / O and the like to the software storage.
 しかし、ホストを操作するユーザに悪意がなくとも、ホスト上に不正なアプリケーションがインストールされている可能性がある。そして、そのような不正なアプリケーションが不正なコマンドをソフトウェアストレージに送信するかもしれない。通常、不正なコマンドは10Bより長いが、ソフトウェアストレージが大きなサイズのバッファを確保しているため、このとき不正なコマンドを受信し、解釈しようとする。 However, there is a possibility that an unauthorized application is installed on the host even if the user operating the host is not malicious. Such an unauthorized application may then send an unauthorized command to the software storage. Normally, an illegal command is longer than 10B. However, since the software storage has a large size buffer, an illegal command is received and an attempt is made at this time.
 この不正なコマンドのフォーマットはSCSIの固定されたコマンドのものと解釈されないので、その不正なコマンドはベンダ独自コマンドと推定され、上位のストレージソフトウェアに渡されことになる。そのような不正コマンドの不正な文字列をストレージソフトウェアが処理すると、最悪の場合にはメモリリークやメモリアクセス違反を起こし、インスタンスの制御を悪意ある攻撃者に渡してしまうというセキュリティ事故を誘発する可能性がある。 -Since the format of this illegal command is not interpreted as that of a SCSI fixed command, the illegal command is presumed to be a vendor-specific command and passed to the upper storage software. When storage software processes an illegal character string of such an illegal command, in the worst case, a memory leak or a memory access violation may occur, and a security accident may be induced in which instance control is passed to a malicious attacker. There is sex.
 本発明の目的は、ソフトウェアストレージが所定のコマンドサイズを超えるコマンドを許容しつつ、不正なコマンドに対するセキュリティ性を向上する技術を提供することである。 An object of the present invention is to provide a technique for improving the security against an illegal command while allowing a command whose software storage exceeds a predetermined command size.
 上記目的を達成するために本発明の一態様による計算機は、ストレージとしてホストからのI/Oコマンドおよびリモートストレージとのリモートコピーを含むコマンドを処理するためのストレージプログラムを実行するプロセッサと、前記ストレージプログラムと前記プロセッサが前記ストレージプログラムを実行するための情報とを記憶するメモリと、を備え、前記メモリは、前記ストレージへ接続するホストまたはリモートストレージに対してそれぞれ個別に許可するコマンド種別を限定するコマンド制御情報を予め記憶し、前記プロセッサは、前記ホストまたは前記リモートストレージからコマンドを受信すると、前記コマンド制御情報を参照し、前記コマンドが前記コマンドの要求元に許可されるコマンドであるか否か判定し、許可される場合に前記コマンドを前記ストレージプログラムにより実行する。 In order to achieve the above object, a computer according to an aspect of the present invention includes a processor that executes a storage program for processing an I / O command from a host as a storage and a command including remote copy with the remote storage, and the storage A memory storing a program and information for the processor to execute the storage program, and the memory limits a command type individually permitted to a host or a remote storage connected to the storage. Command control information is stored in advance, and when the processor receives a command from the host or the remote storage, the processor refers to the command control information and determines whether the command is a command permitted to the command request source. Judgment, The command executed by the storage program when it is acceptable.
 本発明によれば、コマンド制御情報により、ホストまたはリモートストレージ毎に許可するコマンド種別を設定できるので、所定の種別のコマンドを許容しつつ、不正なコマンドに対するセキュリティ性を向上することができる。 According to the present invention, since the command type permitted for each host or remote storage can be set by the command control information, it is possible to improve the security against illegal commands while allowing a predetermined type of command.
実施例1に係る計算機システム10の機能構成例を示すブロック図である。1 is a block diagram illustrating a functional configuration example of a computer system 10 according to Embodiment 1. FIG. 計算機システム10のハードウェア構成例を示すブロック図である。2 is a block diagram showing an example of a hardware configuration of a computer system 10. FIG. 構成情報テーブル133の一例を示す図である。It is a figure which shows an example of the structure information table. 鍵情報テーブル134の一例を示す図である。It is a figure which shows an example of the key information table. ペア情報テーブル135の一例を示す図である。It is a figure which shows an example of the pair information table. 管理基盤103のオーケストレータ130または管理者による計算機システム10の初期設定の処理を示すフローチャートである。It is a flowchart which shows the process of the initial setting of the computer system 10 by the orchestrator 130 of the management infrastructure 103, or an administrator. SCSIアクセス制御部113の詳細構成を示すブロック図である。3 is a block diagram showing a detailed configuration of a SCSI access control unit 113. FIG. SCSIコマンドリスト205の一例を示す図である。6 is a diagram illustrating an example of a SCSI command list 205. FIG. SCSIコマンド制御情報125の一例を示す図である。It is a figure which shows an example of the SCSI command control information 125. SCSI制御部111の初期化シーケンスを示す図である。It is a figure which shows the initialization sequence of the SCSI control part. SCSI制御部111のコマンド処理部123におけるコマンド処理を示すフローチャートである。3 is a flowchart showing command processing in a command processing unit 123 of a SCSI control unit 111. SCSIアクセス制御部113によるアクセス制御処理のフローチャートである。4 is a flowchart of an access control process by a SCSI access control unit 113. 実施例2に係る計算機システム20の機能構成例を示すブロック図である。It is a block diagram which shows the function structural example of the computer system 20 which concerns on Example 2. FIG. 実施例2におけるSCSIアクセス制御部113と他の各部との接続を示した図である。It is the figure which showed the connection of the SCSI access control part 113 in Example 2, and each other part.
 以下、図面を用いて本発明の実施形態について詳細に説明する。なお、各図に示す同一の番号は同一の機能を持つため説明を省略する。 Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings. In addition, since the same number shown to each figure has the same function, description is abbreviate | omitted.
 図1Aは、実施例1に係る計算機システム10の機能構成例を示すブロック図である。計算機システム10は、ホスト100、101、リモートストレージ102、管理基盤103、およびソフトウェアストレージインスタンス104を有している。 FIG. 1A is a block diagram illustrating a functional configuration example of the computer system 10 according to the first embodiment. The computer system 10 includes hosts 100 and 101, a remote storage 102, a management infrastructure 103, and a software storage instance 104.
 図1Bは、計算機システム10のハードウェア構成例を示すブロック図である。ソフトウェアストレージサーバ104Aは、上述したソフトウェアストレージインスタンス104が作成される計算機である。ソフトウェアストレージサーバ104Aは、は、ホスト100、101、リモートストレージ102、および管理基盤103とIPネットワーク900で互いに接続される。 FIG. 1B is a block diagram illustrating a hardware configuration example of the computer system 10. The software storage server 104A is a computer on which the above-described software storage instance 104 is created. The software storage server 104A is connected to the hosts 100 and 101, the remote storage 102, and the management infrastructure 103 by an IP network 900.
 リモートストレージ102は従来型のストレージである。 The remote storage 102 is a conventional storage.
 ソフトウェアストレージインスタンス104は、ストレージ機能をソフトウェアで実現したインスタンスである。ソフトウェアストレージインスタンス104は計算機上に作成され、動作することで計算機をストレージとして機能させる。ソフトウェアストレージインスタンス104は1つの計算機上に作成されてもよいし、複数の計算機上に機能を分散して作成されてもよい。また、ソフトウェアストレージインスタンス104は専用に準備された計算機に作成されてもよいし、他の装置と兼用の計算機上に作成されてもよい。 Software storage instance 104 is an instance in which a storage function is realized by software. The software storage instance 104 is created on the computer and operates to make the computer function as a storage. The software storage instance 104 may be created on one computer, or may be created by distributing functions on a plurality of computers. The software storage instance 104 may be created on a computer prepared exclusively or on a computer that is also used as another device.
 ソフトウェアストレージサーバ104Aは、複数のデータ通信プロトコルを処理可能な計算機である。例えば、ソフトウェアストレージサーバ104Aは、データ通信プロトコルの一例としてiSCSI(Internet Small Computer System Interface)を用い、ホスト100、101、リモートストレージ102、および管理基盤103とデータ通信を行う。 The software storage server 104A is a computer capable of processing a plurality of data communication protocols. For example, the software storage server 104A uses iSCSI (Internet Small Computer System Interface) as an example of a data communication protocol to perform data communication with the hosts 100 and 101, the remote storage 102, and the management infrastructure 103.
 なお、本実施例では、ソフトウェアストレージサーバ104Aは、iSCSIを用いてデータ通信を行う例を示したが、本発明がこれに限定されることはない。他の例として、ソフトウェアストレージサーバ104Aは、FCP(Fibre Channel Protocol)、iSCSI(Internet Small Computer System Interface)、NFS(Network File System)、CIFS(Common Internet File System)、HTTP(Hyper Text Transfer Protocol)などのデータ通信プロトコルを使いてホスト100、101、リモートストレージ102、および管理基盤103とデータ通信を行ってもよい。 In the present embodiment, the software storage server 104A performs data communication using iSCSI, but the present invention is not limited to this. As another example, the software storage server 104A includes an FCP (Fibre Channel Protocol), an iSCSI (Internet Small Computer System), an NFS (Network File System, and a CIFS (CommonHTP). The data communication protocol may be used to perform data communication with the hosts 100 and 101, the remote storage 102, and the management infrastructure 103.
 ソフトウェアストレージサーバ104Aは、例えば、ホスト100、101からのI/O要求を、IPネットワーク900を介して受け取り、そのI/O処理を実行した後、処理結果(I/O応答)をホスト100、101へ返す。ソフトウェアストレージサーバ104Aは、データセンタなどの施設に固定設置されてもよいし、コンテナ型などのように移動可能とし、必要に応じて地理的な位置を変更してもよい。また、ソフトウェアストレージサーバ104Aが1つの計算機ではなく地理的に離れた複数の計算機で構成されていてもよい。 For example, the software storage server 104A receives an I / O request from the hosts 100 and 101 via the IP network 900, executes the I / O processing, and then sends a processing result (I / O response) to the host 100, Return to 101. The software storage server 104A may be fixedly installed in a facility such as a data center, or may be movable like a container type, and the geographical position may be changed as necessary. Further, the software storage server 104A may be configured by a plurality of geographically separated computers instead of a single computer.
 管理基盤103は、計算機システム10のシステム構成、リモートストレージ102が動作するための各種設定、ソフトウェアストレージサーバ104Aが実行するソフトウェア、およびソフトウェアストレージサーバ104Aがソフトウェア実行時に利用する各種設定などを管理する計算機である。管理基盤103は管理プログラムを格納しており、管理プログラムを実行することにより、上述した管理機能を含む各種処理を行う。 The management infrastructure 103 is a computer that manages the system configuration of the computer system 10, various settings for operating the remote storage 102, software executed by the software storage server 104A, and various settings used when the software storage server 104A executes the software. It is. The management infrastructure 103 stores a management program, and executes various processes including the management function described above by executing the management program.
 例えば、管理基盤103は、ソフトウェアストレージインスタンス104とペアとなって接続するホスト100、101またはリモートストレージ102と、そのホスト100、101またはリモートストレージ102毎に実行が許可されたコマンド種別とを示すペア情報を管理しており、ソフトウェアストレージインスタンス104に適宜通知する。 For example, the management infrastructure 103 is a pair indicating the host 100, 101 or remote storage 102 connected as a pair with the software storage instance 104, and the command type permitted to be executed for each host 100, 101, or remote storage 102. It manages information and notifies the software storage instance 104 as appropriate.
 IPネットワーク900は、例えば、インターネット、LAN(Local Area Network)、WAN(Wide Area Network)、SAN(Storage Area Network)、無線LAN、携帯電話通信網などである。また、ネットワーク220は、単一の通信ネットワークではなく、複数種類の通信ネットワークから構成されてもよい。 The IP network 900 is, for example, the Internet, a LAN (Local Area Network), a WAN (Wide Area Network), a SAN (Storage Area Network), a wireless LAN, a mobile phone communication network, and the like. The network 220 may be composed of a plurality of types of communication networks instead of a single communication network.
 ホスト100、101は、ユーザが操作するクライアント、あるいはリモートストレージ102もしくはソフトウェアストレージインスタンス104に接続するアプリケーションがインストールされたサーバである。ホスト100、101は、データセンタなどの施設に固定設置されてもよいし、コンテナ型など移動可能とし地理的な位置を変化させてもよい。ホスト100、101の例として、スマートフォンを含む携帯電話、あるいはパーソナルコンピュータなどの汎用計算機などが想定される。また、ホスト100、101は単一の装置ではなく、複数の異なる計算機から構成されていてもよい。 Hosts 100 and 101 are servers on which a client operated by a user or an application connected to a remote storage 102 or a software storage instance 104 is installed. The hosts 100 and 101 may be fixedly installed in a facility such as a data center, or may be movable such as a container type and change the geographical position. As an example of the hosts 100 and 101, a mobile phone including a smartphone or a general-purpose computer such as a personal computer is assumed. Further, the hosts 100 and 101 may be constituted by a plurality of different computers instead of a single device.
 図1Aに示すように、ソフトウェアストレージサーバ104Aは、メモリ420、HBA(Host Bus Adaptor)431、NIC(Network Interface Card)432、ディスク装置460、及びそれらに接続された制御演算ユニットであるCPU(Central Processing Unit)410を有する。 As shown in FIG. 1A, the software storage server 104A includes a memory 420, an HBA (Host Bus Adapter) 431, an NIC (Network Interface Card) 432, a disk device 460, and a CPU (Central) that is a control arithmetic unit connected thereto. Processing unit) 410.
 メモリ420に代えて、または加えて別種の記憶資源が採用されてもよい。HBA431及びNIC432に変えて、別種の通信インタフェースデバイスが採用されてもよい。 Instead of or in addition to the memory 420, another type of storage resource may be employed. Instead of the HBA 431 and the NIC 432, another type of communication interface device may be employed.
 CPU410は、メモリ420に格納されているコンピュータプログラムを実行する。CPU410は、演算ユニットであるCPUコア411を複数有する。各CPUコア411はそれぞれが独立して動作することができ、並列にコンピュータプログラムを実行する。 CPU 410 executes a computer program stored in memory 420. The CPU 410 has a plurality of CPU cores 411 that are arithmetic units. Each CPU core 411 can operate independently and executes a computer program in parallel.
 CPUコア411は、ストレージプログラム、OS(Operating System)、I/O処理プログラムを含む各種プログラムをメモリ420から読み出して実行するプロセッサコアである。CPUコア411は単にプロセッサと呼んでも良い。 The CPU core 411 is a processor core that reads various programs including a storage program, an OS (Operating System), and an I / O processing program from the memory 420 and executes them. The CPU core 411 may be simply called a processor.
 メモリ420は、コンピュータプログラム及びその他のデータを記憶する。メモリ420は、ホスト100、101から受信したデータ及びホスト100、101に送信するデータを一時的に記憶するキャッシュを含んでいてもよい。 The memory 420 stores computer programs and other data. The memory 420 may include a cache that temporarily stores data received from the hosts 100 and 101 and data to be transmitted to the hosts 100 and 101.
 HBA431、NIC432は、IPネットワーク900に接続され、管理基盤103やホスト100、101とのデータ通信に用いられる。 The HBA 431 and the NIC 432 are connected to the IP network 900 and used for data communication with the management infrastructure 103 and the hosts 100 and 101.
 ディスク装置460として、ソフトウェアストレージサーバ104Aの二次記憶装置であるSSD(Solid State Drive)451およびHDD(Hard Disk Drive)452を有する。二次記憶装置はストレージとして、I/O処理のデータを格納する。また、ディスク装置460は、典型的には図1Bに例示したSSD451およびHDD452であるが、ブロック形式のデータを格納できるものであれば何でもよい。本実施例では、記憶デバイスの一例としてディスク装置460を例示しているが、本発明はこれに限定されることはない。他の例として、ディスク装置460は、テープアーカイブ、あるいはDVD、CDなどの光ディスクライブラリを備えた装置であってもよい。以下、SSD451、HDD452を総称してディスク装置460と呼ぶことにする。ディスク装置460は記憶デバイスとしてもよい。 The disk device 460 includes an SSD (Solid State Drive) 451 and an HDD (Hard Disk Drive) 452 which are secondary storage devices of the software storage server 104A. The secondary storage device stores I / O processing data as storage. The disk device 460 is typically the SSD 451 and the HDD 452 illustrated in FIG. 1B, but may be anything as long as it can store block format data. In this embodiment, the disk device 460 is illustrated as an example of the storage device, but the present invention is not limited to this. As another example, the disk device 460 may be a device including a tape archive or an optical disk library such as a DVD or a CD. Hereinafter, the SSD 451 and the HDD 452 are collectively referred to as a disk device 460. The disk device 460 may be a storage device.
 図1Aを用いて各装置等の機能について説明する。 The function of each device will be described with reference to FIG. 1A.
 管理基盤103は、オーケストレータ130、情報機器管理部131、ストレージアクセス管理部132、構成情報テーブル133、鍵情報テーブル134、およびペア情報テーブル135を有している。 The management infrastructure 103 includes an orchestrator 130, an information device management unit 131, a storage access management unit 132, a configuration information table 133, a key information table 134, and a pair information table 135.
 オーケストレータ130は、管理者が手動で実行する作業をプログラムとして用意しておき、実行する機能部である。オーケストレータ130は、管理者が手動で実施することなく、計算機システム10内のプロビジョニングあるいは計算機システム10のシステム構成を各装置へ設定することを可能にする。 The orchestrator 130 is a functional unit that prepares and executes operations manually executed by an administrator. The orchestrator 130 enables the administrator to set the provisioning in the computer system 10 or the system configuration of the computer system 10 to each device without manually performing the operation.
 情報機器管理部131は、ホスト100,101、リモートストレージ102、管理基盤103、およびソフトウェアストレージインスタンス104の構成情報を収集し、管理する。情報機器管理部131が収集した情報は構成情報テーブル133に格納される。 The information device management unit 131 collects and manages the configuration information of the hosts 100 and 101, the remote storage 102, the management infrastructure 103, and the software storage instance 104. Information collected by the information device management unit 131 is stored in the configuration information table 133.
 ストレージアクセス管理部132は、ホスト100,101およびリモートストレージ102とソフトウェアストレージインスタンス104との接続に関する情報を管理する。ストレージアクセス管理部132が管理する情報には、鍵情報テーブル134およびペア情報135が含まれる。 The storage access management unit 132 manages information related to the connections between the hosts 100 and 101 and the remote storage 102 and the software storage instance 104. Information managed by the storage access management unit 132 includes a key information table 134 and pair information 135.
 鍵情報テーブル134は、ホスト100,101やリモートストレージ102とソフトウェアストレージインスタンス104の接続を安全に実施するために要求される鍵情報を格納するテーブルである。本実施例では、公開鍵認証方式を用いた方法が採用される。ただし、本発明がこれに限定するものではない。本実施例では、鍵情報テーブル134には、公開鍵認証方式の通信に必要な公開鍵と秘密鍵のペアが管理される。 The key information table 134 is a table for storing key information required to securely connect the hosts 100 and 101 and the remote storage 102 and the software storage instance 104. In this embodiment, a method using a public key authentication method is adopted. However, the present invention is not limited to this. In this embodiment, the key information table 134 manages a pair of a public key and a secret key necessary for communication using the public key authentication method.
 ペア情報135は、ソフトウェアストレージインスタンス104と接続するホスト100、101、もしくはリモートストレージ102との接続の形態の情報を管理するテーブルである。 The pair information 135 is a table for managing information on the form of connection with the hosts 100 and 101 connected to the software storage instance 104 or the remote storage 102.
 鍵情報テーブル134およびペア情報135は図2A~2Cを用いて詳細を後述する。 Details of the key information table 134 and the pair information 135 will be described later with reference to FIGS. 2A to 2C.
 ソフトウェアストレージインスタンス104は、ソフトウェアストレージ110、SCSI制御部111、IP制御部112、SCSIアクセス制御部113、およびドライブ群114を有する、ストレージサービスをソフトウェアとして提供するインスタンスである。なお、インスタンスは、ソフトウェアストレージが動作するためのOS、OS動作に必要なCPU、メモリ、ドライブ、ネットワークの機能が提供されているものであれば、その提供形態は問わない。インスタンスは、プログラムがハードウェアに直接インストールされたマシンであっても、ハイパーバイザ上で動作する仮想マシンであっても、コンテナ管理ソフトウェアで管理されるコンテナ領域であっても良い。 The software storage instance 104 includes a software storage 110, a SCSI control unit 111, an IP control unit 112, a SCSI access control unit 113, and a drive group 114, and is an instance that provides a storage service as software. An instance may be provided in any form as long as an OS for operating software storage and a CPU, memory, drive, and network functions necessary for OS operation are provided. The instance may be a machine in which a program is directly installed on hardware, a virtual machine that operates on a hypervisor, or a container area managed by container management software.
 ソフトウェアストレージ110は、コマンド制御部120、データ制御部121、およびドライブ制御部122を有する。コマンド制御部120は、SCSI制御部111から受信したSCSIコマンドをデータ制御部121に渡し、データ制御部121が生成したSCSIコマンドをSCSI制御部111に渡す。データ制御部121はコマンド制御部120から受信したSCSIコマンドに従い、ドライブ制御部122と通信することにより、ドライブ群114へのデータの読み出し、書込みを実施する。ドライブ制御部122は、ために、ドライブ群114を制御し、データ制御部121が要求するデータのドライブ群114からの読み出しおよびドライブ群114への書き込みを実施する。 The software storage 110 includes a command control unit 120, a data control unit 121, and a drive control unit 122. The command control unit 120 passes the SCSI command received from the SCSI control unit 111 to the data control unit 121, and passes the SCSI command generated by the data control unit 121 to the SCSI control unit 111. The data control unit 121 reads and writes data to the drive group 114 by communicating with the drive control unit 122 according to the SCSI command received from the command control unit 120. For this purpose, the drive control unit 122 controls the drive group 114 to read data from the drive group 114 and write data to the drive group 114 requested by the data control unit 121.
 SCSI制御部111は、SCSIコマンドの解釈を行うコマンド処理部123を含み、SCSIコマンドの送受信を担当するプロトコルスタックである。 The SCSI control unit 111 is a protocol stack that includes a command processing unit 123 that interprets SCSI commands and is in charge of transmission and reception of SCSI commands.
 IP制御部112は、IPsecの処理を行うIPsec処理部124を含み、IP通信を担当するプロトコルスタックである。IP制御部112となるCPU410は、管理基盤103から、ホスト100、101またはリモートストレージ102との通信を暗号化するための暗号鍵を取得し、その暗号鍵をホスト100、101またはリモートストレージ102との通信の暗号化に用いる。ソフトウェアストレージインスタンス104は、ホスト100、101またはリモートストレージ102との通信を暗号化するので、のぞき見に対するセキュリティ性も向上することができる。
 図1Aでは特に明記しないが、IP制御部112はTCPやUDPなどトランスポート層の制御を実施してもよい。本実施例ではトランスポート層およびトランスポート層に対する制御は特に限定されない。
The IP control unit 112 includes an IPsec processing unit 124 that performs IPsec processing, and is a protocol stack in charge of IP communication. The CPU 410 serving as the IP control unit 112 acquires an encryption key for encrypting communication with the host 100, 101 or remote storage 102 from the management infrastructure 103, and uses the encryption key with the host 100, 101 or remote storage 102. Used to encrypt communication. Since the software storage instance 104 encrypts communication with the hosts 100 and 101 or the remote storage 102, security against peeping can be improved.
Although not particularly specified in FIG. 1A, the IP control unit 112 may control the transport layer such as TCP and UDP. In this embodiment, the transport layer and the control for the transport layer are not particularly limited.
 SCSIアクセス制御部113は、SCSI層でのアクセス制御を実施する。 The SCSI access control unit 113 performs access control at the SCSI layer.
 本実施例では、CPU410は、メモリ420に格納されたストレージプログラムを読み出して実行する。ストレージプログラムは、ストレージとしてホスト100、101からのI/Oコマンドおよびリモートストレージ102とのリモートコピーを含むコマンドを処理するためのプログラムである。メモリ420には、CPU410がストレージプログラムを実行するための情報も記憶する。 In this embodiment, the CPU 410 reads and executes the storage program stored in the memory 420. The storage program is a program for processing I / O commands from the hosts 100 and 101 and commands including remote copy with the remote storage 102 as storage. The memory 420 also stores information for the CPU 410 to execute the storage program.
 アクセス制御に関連して、メモリ420には、ストレージへ接続するホスト100、101またはリモートストレージ102に対してそれぞれ個別に許可するコマンド種別を限定するコマンド制御情報を予め記憶している。SCSIアクセス制御部113となるCPU410は、ホスト100、101またはリモートストレージ102からコマンドを受信すると、コマンド制御情報を参照し、そのコマンドがコマンドの要求元に許可されるコマンドであるか否か判定し、許可される場合にコマンドをストレージプログラムにより実行する。本実施例によれば、コマンド制御情報により、ホストまたはリモートストレージ毎に許可するコマンド種別を設定できるので、所定の種別のコマンドを許容しつつ、不正なコマンドに対するセキュリティ性を向上することができる。
 また、コマンド制御情報は、更に、ホスト100、101またはリモートストレージ102に対して許可するコマンド種別毎に、許可するコマンドサイズを限定する。CPU410は、コマンド制御情報に基づいて、処理するコマンドを保持するバッファのサイズを設定し、ホスト100、101またはリモートストレージ102からコマンドを受信すると、そのコマンドがバッファに格納できるサイズであればバッファに格納し、コマンド制御情報を参照し、コマンドがそのコマンドの要求元に許可されるコマンド種別である場合にストレージプログラムにより実行する。ソフトウェアストレージは、許可するコマンドのサイズに対して適切なバッファのサイズを設定することにより、コマンドのサイズに基づいて不正なコマンドを破棄することができるので、不正なコマンドを処理して異常を発生させるのを防止することができる。
 SCSIアクセス制御部113によるアクセス制御の詳細は図5A、図5Bなどを用いて後述する。
In relation to the access control, the memory 420 stores in advance command control information for limiting the command types individually permitted for the hosts 100 and 101 or the remote storage 102 connected to the storage. When receiving a command from the host 100 or 101 or the remote storage 102, the CPU 410 serving as the SCSI access control unit 113 refers to the command control information and determines whether or not the command is a command permitted to the command request source. If allowed, execute the command by the storage program. According to the present embodiment, the command type permitted for each host or remote storage can be set by the command control information, so that it is possible to improve the security against illegal commands while allowing a predetermined type of command.
Further, the command control information further limits the command size permitted for each command type permitted for the hosts 100 and 101 or the remote storage 102. Based on the command control information, the CPU 410 sets the size of a buffer that holds a command to be processed, and when a command is received from the host 100 or 101 or the remote storage 102, if the command can be stored in the buffer, it is stored in the buffer. Store and refer to the command control information, and execute by the storage program when the command is a command type permitted to the request source of the command. Software storage can discard illegal commands based on the command size by setting an appropriate buffer size for the size of the allowed command. Can be prevented.
Details of access control by the SCSI access control unit 113 will be described later with reference to FIGS. 5A and 5B.
 図2A~2Cは管理基盤103が管理する各種情報を示す。図2Aは構成情報テーブル133の一例を示す図である。図2Bは鍵情報テーブル134の一例を示す図である。図2Cはペア情報テーブル135の一例を示す図である。 2A to 2C show various information managed by the management infrastructure 103. FIG. FIG. 2A is a diagram illustrating an example of the configuration information table 133. FIG. 2B is a diagram illustrating an example of the key information table 134. FIG. 2C is a diagram illustrating an example of the pair information table 135.
 図2Aに示すテーブルT1は構成情報テーブル133の一例であり、システム構成要素の状態を管理するテーブルである。テーブルT1には、計算機システム10を構成するシステム構成要素のそれぞれの状態を示す情報が格納されている。 The table T1 shown in FIG. 2A is an example of the configuration information table 133, and is a table that manages the state of system components. The table T1 stores information indicating the state of each system component constituting the computer system 10.
 図2Aを参照すると、テーブルT1には、システム構成要素として、ホスト100,101、リモートストレージ102、およびソフトウェアストレージインスタンス104について、接続アドレス、構成要素名、種別、および状態がそれぞれ格納されている。ただし、管理する情報はこの例に限定されることは無い。 Referring to FIG. 2A, the table T1 stores connection addresses, component names, types, and states for the hosts 100 and 101, the remote storage 102, and the software storage instance 104 as system components. However, the information to be managed is not limited to this example.
 管理基盤103はこれらの情報を各システム構成要素から取得する。この取得方法は、特に限定されないが、例えば、SNMPなどのプロトコルを用いた通信で取得してもよい。また、他の例として、ホスト100,101、リモートストレージ102、およびソフトウェアストレージインスタンス104のそれぞれに独自の情報取得用のエージェントをインストールし、管理基盤103はそのエージェントから送付される情報を受信し、格納することにしてもよい。 The management infrastructure 103 acquires such information from each system component. Although this acquisition method is not specifically limited, For example, you may acquire by communication using protocols, such as SNMP. As another example, an agent for acquiring unique information is installed in each of the hosts 100 and 101, the remote storage 102, and the software storage instance 104, and the management infrastructure 103 receives information sent from the agent, It may be stored.
 図2Bに示すテーブルT2は鍵情報134の一例である。テーブルT2は、計算機システム10内の装置間で、iSCSIのIPsecを用いて、ピアツーピアで安全な接続を維持するための暗号化鍵を格納するテーブルである。本実施例ではIPsecの暗号化方式は限定しないが、ここでは一例として公開鍵方式が採用されている。そのため、テーブルT2には公開鍵方式の公開鍵と秘密鍵が格納されている。公開鍵方式では、公開鍵は認証を行う側の装置に配布され、秘密鍵は認証される側の装置に配布される。公開鍵は公開してもセキュリティ上問題とならないが、秘密鍵は公開してはならない。それゆえ、例えば秘密鍵をホスト101に配布する際には外部に漏れないよう注意する必要がある。 The table T2 shown in FIG. 2B is an example of the key information 134. The table T2 is a table for storing encryption keys for maintaining a peer-to-peer secure connection between devices in the computer system 10 using iSCSI IPsec. In this embodiment, the IPsec encryption method is not limited, but here, as an example, a public key method is adopted. Therefore, the public key and public key of the public key method are stored in the table T2. In the public key method, the public key is distributed to the authenticating device, and the secret key is distributed to the authenticating device. Even if the public key is made public, it will not be a security problem, but the private key should not be made public. Therefore, for example, when distributing the secret key to the host 101, care must be taken not to leak it to the outside.
 図2Cに示すテーブルT3はペア情報135の一例である。テーブルT3はホスト100、101、リモートストレージ102、およびソフトウェアストレージインスタンス104が互いに接続する論理的な接続状態を示すペア情報を格納するテーブルである。本実施例ではテーブルT3には、ペアの対象となる2つの構成要素と、ペアの種別とが格納される。 The table T3 shown in FIG. 2C is an example of the pair information 135. The table T3 is a table that stores pair information indicating logical connection states in which the hosts 100 and 101, the remote storage 102, and the software storage instance 104 are connected to each other. In this embodiment, the table T3 stores two components to be paired and the type of the pair.
 具体的にテーブルT3を参照すると、1行目は、ホスト101とソフトウェアストレージインスタンス104が論理的な接続を構成し、その接続はI/Oのみを行う接続であることを示す。同様に、テーブルT3の2行目は、リモートストレージ102とソフトウェアストレージインスタンス104が論理的な接続を構成し、その接続はストレージ間でボリュームデータをコピーするリモートコピーを行う接続であることを示す。 Specifically, referring to the table T3, the first line indicates that the host 101 and the software storage instance 104 constitute a logical connection, and the connection is a connection that performs only I / O. Similarly, the second row of the table T3 indicates that the remote storage 102 and the software storage instance 104 constitute a logical connection, and the connection is a connection for performing remote copy for copying volume data between the storages.
 図3は、管理基盤103のオーケストレータ130または管理者による計算機システム10の初期設定の処理を示すフローチャートである。 FIG. 3 is a flowchart showing the initial setting process of the computer system 10 by the orchestrator 130 of the management infrastructure 103 or the administrator.
 まず、以降の説明で必要となる、本実施例の前提についてここにまとめる。 First, the premise of this embodiment, which is necessary in the following explanation, is summarized here.
 本実施例において、設定の対象となるのはソフトウェアストレージインスタンス104である。オーケストレータ130もしくは監理者は、ソフトウェアストレージインスタンス104に関する各種設定を、ホスト101、リモートストレージ102、およびソフトウェアストレージインスタンス104に対して設定する。 In the present embodiment, the target of setting is the software storage instance 104. The orchestrator 130 or the supervisor sets various settings related to the software storage instance 104 for the host 101, the remote storage 102, and the software storage instance 104.
 ソフトウェアストレージインスタンス104の提供するiSCSIサービスに対して、ホスト101はI/Oのみ接続可能であり、リモートストレージ102はコピー制御コマンドのみ接続可能である。一方、ホスト100は、例えば信頼性の低いホストである、もしくは別部署のユーザが操作するホストである。そのため、ホスト100はI/O及びコピー制御コマンドを利用できないものとする。 For the iSCSI service provided by the software storage instance 104, the host 101 can connect only I / O, and the remote storage 102 can connect only the copy control command. On the other hand, the host 100 is, for example, a low-reliability host or a host operated by a user in another department. Therefore, it is assumed that the host 100 cannot use I / O and copy control commands.
 それゆえ、ホスト101、リモートストレージ102、ソフトウェアストレージインスタンス104において、iSCSI及びIPsecの接続設定、及び本発明の一実施形態であるSCSI層でのアクセス制御を行う必要がある。 Therefore, in the host 101, the remote storage 102, and the software storage instance 104, it is necessary to perform iSCSI and IPsec connection settings and access control at the SCSI layer, which is an embodiment of the present invention.
 また、リモートストレージ102とソフトウェアストレージインスタンス104の間で実施されるリモートコピーに関して、本実施例では説明を簡単にするために、リモートストレージ102をiSCSIイニシエータ、ソフトウェアストレージインスタンス104をターゲットと固定して説明する。なお、双方向にデータをコピーする場合、もしくはコピーはリモートストレージ102からソフトウェアストレージインスタンス104への一方向のみであるが、コピー制御コマンドは双方向でやり取りする必要がある場合、リモートストレージ102及びソフトウェアストレージインスタンス104が共にiSCSIイニシエータとなる必要がある。 In addition, regarding the remote copy performed between the remote storage 102 and the software storage instance 104, in this embodiment, the remote storage 102 is fixed to the iSCSI initiator and the software storage instance 104 is fixed to the target for the sake of simplicity. To do. When data is copied bidirectionally, or copying is only in one direction from the remote storage 102 to the software storage instance 104, the copy control command needs to be exchanged in both directions. Both storage instances 104 need to be iSCSI initiators.
 以下、図3を参照して初期設定処理を説明する。 Hereinafter, the initial setting process will be described with reference to FIG.
 図3において、管理者が生成したソフトウェアプログラムにより自動的に管理作業を実施するオーケストレータ130もしくは管理者は、管理基盤103のストレージアクセス管理部132を経由して、ホスト101とソフトウェアストレージインスタンス104をI/Oのみを実施するペアとしてペア情報テーブル135に登録する(F1)。 In FIG. 3, an orchestrator 130 or an administrator who automatically performs management work using a software program generated by the administrator connects the host 101 and the software storage instance 104 via the storage access management unit 132 of the management infrastructure 103. A pair for performing only I / O is registered in the pair information table 135 (F1).
 続けて、オーケストレータ130もしくは管理者は、管理基盤103のストレージアクセス管理部132を経由して、リモートストレージ102とソフトウェアストレージインスタンス104をリモートコピーのみを実施するペアとしてペア情報テーブル135に登録する(F2)。この結果、T3が生成される。 Subsequently, the orchestrator 130 or the administrator registers the remote storage 102 and the software storage instance 104 in the pair information table 135 as a pair for performing only remote copy via the storage access management unit 132 of the management infrastructure 103 ( F2). As a result, T3 is generated.
 続けて、オーケストレータ130もしくは管理者は、ホスト101とリモートストレージ102に公開鍵を配布する(F3)。続けて、オーケストレータ130もしくは管理者は、ソフトウェアストレージインスタンス104に秘密鍵を配布する(F4)。上述のように、リモートストレージ102とソフトウェアストレージインスタンス104の間で双方向にデータをコピーする、もしくはコピーはリモートストレージ102からソフトウェアストレージインスタンス104の一方向のみであるが、コピー制御コマンドは双方向でやり取りする必要がある場合、ソフトウェアストレージインスタンス104に公開鍵だけでなく秘密鍵を、リモートストレージ102に秘密鍵だけでなく公開鍵を配布しなければならない。 Subsequently, the orchestrator 130 or the administrator distributes the public key to the host 101 and the remote storage 102 (F3). Subsequently, the orchestrator 130 or the administrator distributes the secret key to the software storage instance 104 (F4). As described above, data is copied bidirectionally between the remote storage 102 and the software storage instance 104, or copying is only in one direction from the remote storage 102 to the software storage instance 104, but the copy control command is bidirectional. If exchange is required, not only the public key but also the private key must be distributed to the software storage instance 104, and not only the private key but also the public key must be distributed to the remote storage 102.
 最後に、オーケストレータ130もしくは管理者は、ソフトウェアストレージインスタンス104のSCSIアクセス制御部113に、ペア情報テーブル135に記載の情報、及び構成情報テーブル133に記載の情報を送付する(F5)。なお、SCSIアクセス制御部113の受信処理については別図を用いて後述する。 Finally, the orchestrator 130 or the administrator sends the information described in the pair information table 135 and the information described in the configuration information table 133 to the SCSI access control unit 113 of the software storage instance 104 (F5). The reception processing of the SCSI access control unit 113 will be described later with reference to another drawing.
 図4は、SCSIアクセス制御部113の詳細構成を示すブロック図である。SCSIアクセス制御部113は、ペア情報受信部200と、SCSIコマンド制御情報生成部201と、コマンドバッファサイズ通知部202と、確認要求送受信部203と、確認要求検証部204とを有し、SCSIコマンドリスト205と、SCSIコマンド制御情報125を保持している。 FIG. 4 is a block diagram showing a detailed configuration of the SCSI access control unit 113. The SCSI access control unit 113 includes a pair information reception unit 200, a SCSI command control information generation unit 201, a command buffer size notification unit 202, a confirmation request transmission / reception unit 203, and a confirmation request verification unit 204. A list 205 and SCSI command control information 125 are held.
 ペア情報受信部200は、ペア情報テーブル135の情報、及び構成情報テーブル133の情報をIP制御部112から受信する。SCSIコマンド制御情報生成部201は、ペア情報受信部200が受信したペア情報とSCSIコマンドリスト205に基づきSCSIコマンド制御情報を生成する。 The pair information receiving unit 200 receives the information of the pair information table 135 and the information of the configuration information table 133 from the IP control unit 112. The SCSI command control information generating unit 201 generates SCSI command control information based on the pair information received by the pair information receiving unit 200 and the SCSI command list 205.
 なお、コマンド制御情報の生成に関連して、メモリ420は、予め、コマンド種別毎にコマンドサイズを規定したコマンドリスト情報を保持している。SCSIコマンド制御情報生成部201となるCPU410は、システム構成を管理する管理基盤103から、ストレージとペアとなって接続するホスト100、101またはリモートストレージ102と、そのホストまたはリモートストレージ毎に実行可能なコマンド種別とを示すペア情報を所得し、そのペア情報とコマンドリスト情報とに基づいてコマンド制御情報を生成する。コマンドリストを予め保持しているので、管理基盤103から得られるシステム構成の情報に基づいてコマンド制御情報を生成することができる。
 また、コマンドバッファサイズ通知部202は、SCSI制御部111が初期に用意すべきバッファサイズを通知する。確認要求送受信部203は、SCSI制御部111から送付されるSCSIコマンドの正当性確認要求を受信し、確認要求検証部204から返される確認結果をSCSI制御部111に送付する。確認要求検証部204は、確認要求送受信部203を経由し、SCSI制御部111から送付されたSCSIコマンドの正当性確認要求を検証し、その検証結果を返す。SCSIコマンドリスト205はSCSIコマンドのリストテーブルであり、SCSIコマンド制御情報を生成する際に使用する。
In connection with the generation of the command control information, the memory 420 holds command list information that prescribes a command size for each command type in advance. The CPU 410 serving as the SCSI command control information generation unit 201 can be executed from the management infrastructure 103 that manages the system configuration for each host 100, 101 or remote storage 102 that is connected in a pair with the storage, and for each host or remote storage. Pair information indicating a command type is obtained, and command control information is generated based on the pair information and command list information. Since the command list is held in advance, the command control information can be generated based on the system configuration information obtained from the management infrastructure 103.
The command buffer size notifying unit 202 notifies the buffer size that the SCSI control unit 111 should prepare initially. The confirmation request transmission / reception unit 203 receives the SCSI command validity confirmation request sent from the SCSI control unit 111 and sends the confirmation result returned from the confirmation request verification unit 204 to the SCSI control unit 111. The confirmation request verification unit 204 verifies the SCSI command validity confirmation request sent from the SCSI control unit 111 via the confirmation request transmission / reception unit 203 and returns the verification result. The SCSI command list 205 is a list table of SCSI commands and is used when generating SCSI command control information.
 図5Aは、SCSIコマンドリスト205の一例を示す図である。図5Bは、SCSIコマンド制御情報125の一例を示す図である。図5Aには、SCSIコマンドリスト205の一例としてテーブルT4が示されている。図5Bには、SCSIコマンド制御情報125の一例としてテーブルT5が示されている。ただし、SCSIコマンドリスト205と、SCSIコマンド制御情報125はそれぞれテーブルT4、T5に限定されるものではない。 FIG. 5A is a diagram showing an example of the SCSI command list 205. FIG. 5B is a diagram illustrating an example of the SCSI command control information 125. FIG. 5A shows a table T4 as an example of the SCSI command list 205. FIG. 5B shows a table T5 as an example of the SCSI command control information 125. However, the SCSI command list 205 and the SCSI command control information 125 are not limited to the tables T4 and T5, respectively.
 図5Aに示すテーブルT4は、各SCSIコマンドと、そのコマンドのサイズと、そのコマンドが対応する種別が格納されるテーブルである。例えば、その1行目にはデータを読みだすためのコマンドであるREADコマンドについて記載されている。READコマンドは、そのコマンドサイズが10Bであり、またI/Oのためのコマンドである。なお、本実施例において、READ,WRITEはデータの読み出し、書き込みのコマンドである。READコマンドとWRITEコマンドはいずれもコマンドサイズが10Bである。また同様に、COPY,SYNCはそれぞれコピー処理と同期処理のためのコマンドである。これらのコマンドのコマンドサイズは32Bである。 The table T4 shown in FIG. 5A is a table storing each SCSI command, the size of the command, and the type to which the command corresponds. For example, the first line describes a READ command that is a command for reading data. The READ command has a command size of 10B and is a command for I / O. In this embodiment, READ and WRITE are commands for reading and writing data. Both the READ command and the WRITE command have a command size of 10B. Similarly, COPY and SYNC are commands for copy processing and synchronization processing, respectively. The command size of these commands is 32B.
 SCSIアクセス制御部113では、管理基盤103から送付されるペア情報をペア情報受信部200にて受信すると、SCSIコマンド制御情報生成部201にそのペア情報を送付する。SCSIコマンド制御情報生成部201は、SCSIコマンドリスト205を、受信したペア情報でフィルタし、SCSIコマンド制御情報125を生成する。その生成結果の一例がテーブルT5である。 When the pair information receiving unit 200 receives the pair information sent from the management infrastructure 103, the SCSI access control unit 113 sends the pair information to the SCSI command control information generating unit 201. The SCSI command control information generation unit 201 filters the SCSI command list 205 with the received pair information to generate SCSI command control information 125. An example of the generation result is the table T5.
 テーブルT5は、接続先ホスト名、そのホストのIPアドレス、そのホストに許可されるコマンド種別、およびそのホストに許可されるコマンドサイズを項目として含む。テーブルT5には、ソフトウェアストレージインスタンス104と、ホスト101とリモートストレージ102間の接続制御情報を例示している。先に記述した前提の通り、テーブルT5において、ホスト101にはI/Oコマンドのみが許可され、リモートストレージ102にはコピー制御コマンドのみが許可される。 The table T5 includes, as items, a connection destination host name, an IP address of the host, a command type permitted to the host, and a command size permitted to the host. Table T5 exemplifies connection control information between the software storage instance 104 and the host 101 and remote storage 102. As described above, in the table T5, only the I / O command is permitted for the host 101 and only the copy control command is permitted for the remote storage 102.
 具体的に、テーブルT3の1行目のペア情報をペア情報受信部200が受信した場合、そのペア種別である「I/O」により、テーブルT4の「種別」項を対象にフィルタする。その結果、READ及びWRITEコマンドが抽出される。続けて、ペア情報に含まれるペア対象情報であるホスト101に関する情報を、ペア情報と共に送付される構成情報から抽出する。この結果、SCSIコマンド制御情報生成部201は、SCSIコマンド制御情報125としてテーブルT5を生成できる。 Specifically, when the pair information receiving unit 200 receives the pair information on the first row of the table T3, the pair type “I / O” is used to filter the “type” item of the table T4. As a result, READ and WRITE commands are extracted. Subsequently, information regarding the host 101 which is pair target information included in the pair information is extracted from the configuration information sent together with the pair information. As a result, the SCSI command control information generation unit 201 can generate the table T5 as the SCSI command control information 125.
 続けて、図6を用いて、SCSI制御部111の初期化について説明する。図6は、SCSI制御部111の初期化シーケンスを示す図である。 Next, initialization of the SCSI control unit 111 will be described with reference to FIG. FIG. 6 is a diagram showing an initialization sequence of the SCSI control unit 111.
 SCSI制御部111、特にIP制御部112から渡されるSCSIコマンドを処理するコマンド処理部123は、受信したコマンドを保持するためのバッファを確保する必要がある。テーブルT4で示したように、SCSIコマンドはコマンド内容によってサイズが異なるため、許可されるSCSIコマンドを保持できるだけのバッファサイズをSCSIアクセス制御部113からコマンド処理部123に通知する。 The SCSI control unit 111, particularly the command processing unit 123 that processes a SCSI command passed from the IP control unit 112, needs to secure a buffer for holding the received command. As shown in the table T4, since the SCSI command has a different size depending on the command content, the SCSI access control unit 113 notifies the command processing unit 123 of a buffer size that can hold the permitted SCSI command.
 図4に示したSCSIアクセス制御部113では、SCSIコマンド制御情報生成部201がSCSIコマンド制御情報125を生成した後に、図6に示すように、コマンドバッファサイズ通知部202は、SCSI制御部111のコマンド処理部123に、SCSIコマンド制御情報125記載の許可コマンドサイズの内、最大サイズを通知する(S1)。具体的に、テーブルT5の例では最大サイズの32Bの情報が通知される。バッファサイズを受信したコマンド処理部123は、バッファサイズを、その通知されたサイズの値に設定する(S2)。 In the SCSI access control unit 113 shown in FIG. 4, after the SCSI command control information generating unit 201 generates the SCSI command control information 125, the command buffer size notifying unit 202 includes the SCSI control unit 111 as shown in FIG. 6. The command processing unit 123 is notified of the maximum size among the permitted command sizes described in the SCSI command control information 125 (S1). Specifically, in the example of the table T5, the maximum size of 32B information is notified. Receiving the buffer size, the command processing unit 123 sets the buffer size to the notified size value (S2).
 続けて、図7を用いて、SCSI制御部111のSCSIコマンド処理について説明する。図7は、SCSI制御部111のコマンド処理部123におけるコマンド処理を示すフローチャートである。 Next, the SCSI command processing of the SCSI control unit 111 will be described with reference to FIG. FIG. 7 is a flowchart showing command processing in the command processing unit 123 of the SCSI control unit 111.
 SCSI制御部111では、コマンド処理部123は、IP制御部112からSCSIコマンドを受信し(F11)、受信したコマンドと、その送信元に関する情報をSCSIアクセス制御部113に送信する(F12)。 In the SCSI control unit 111, the command processing unit 123 receives the SCSI command from the IP control unit 112 (F11), and transmits the received command and information regarding the transmission source to the SCSI access control unit 113 (F12).
 次に、コマンド処理部123は、SCSIアクセス制御部113から、そのコマンドが正当であるという結果が返った場合(F13)、当該コマンドの解釈を実施し(F14)、コマンドの内容をソフトウェアストレージ110に送信する(F15)。一方、F13にて、SCSIアクセス制御部113から正当でないという結果が返った場合、コマンド処理部123は、当該コマンドの解釈はせずに、エラー処理を実施する(F16)。 Next, when the command processing unit 123 returns a result indicating that the command is valid (F13) from the SCSI access control unit 113, the command processing unit 123 interprets the command (F14), and changes the contents of the command to the software storage 110. (F15). On the other hand, when a result that is not valid is returned from the SCSI access control unit 113 in F13, the command processing unit 123 performs error processing without interpreting the command (F16).
 ここで行うエラー処理は特に限定されない。特にいずれかを推奨することはないが多くの具体例が見られる。エラー処理として、例えば、何もしないで終了するという処理であってもよいし、送信元に対してエラーを通知する処理であっても良い。 The error handling performed here is not particularly limited. There are many specific examples, although neither is recommended. For example, the error process may be a process of ending without doing anything, or a process of notifying an error to the transmission source.
 また、SCSIアクセス制御部113がコマンドの正当か不正かを示すために返送する情報は特に限定されない。ここでは一例として、SCSIアクセス制御部113は、確認結果を示すコード(例えば正当もしくは不正を示す情報)と、コマンドの解釈を実施すべきサイズを返す。この結果、コマンドが正当であるという確認結果が通知された場合、コマンド処理部123は、通知されたサイズ分だけそのコマンドの解釈を実施する。 Also, the information returned by the SCSI access control unit 113 to indicate whether the command is valid or invalid is not particularly limited. Here, as an example, the SCSI access control unit 113 returns a code indicating a confirmation result (for example, information indicating validity or fraud) and a size at which the command should be interpreted. As a result, when the confirmation result that the command is valid is notified, the command processing unit 123 interprets the command by the notified size.
 続けて、図8を用いて、図7のF12にてSCSI制御部111から送信される確認要求に対して、SCSIアクセス制御部113が行う処理について説明する。図8は、SCSIアクセス制御部113によるアクセス制御処理のフローチャートである。 Next, processing performed by the SCSI access control unit 113 in response to the confirmation request transmitted from the SCSI control unit 111 in F12 of FIG. 7 will be described using FIG. FIG. 8 is a flowchart of the access control process by the SCSI access control unit 113.
 SCSIアクセス制御部113は、SCSI制御部111が送信したコマンドとその送信元情報を受信し(F21)、受信したコマンドが送信元に許可されたコマンドか否かをSCSIコマンド制御情報125のテーブルを用いて判断する(F22)。 The SCSI access control unit 113 receives the command transmitted by the SCSI control unit 111 and its transmission source information (F21), and determines whether or not the received command is a command permitted by the transmission source by using a table of the SCSI command control information 125. It judges using (F22).
 具体的にホスト101からREADコマンドが送付された場合、送信元情報に基づいてテーブルT5を参照し、コマンドが当該ホスト101に許可されたコマンドであるか否か判定す。図5Bに示したテーブルT5の例では、READコマンドは許可されたコマンドであることが判明し、また、同時にその解釈に必要な許可コマンドサイズが判明する。 Specifically, when a READ command is sent from the host 101, the table T5 is referred to based on the transmission source information, and it is determined whether or not the command is a command permitted to the host 101. In the example of the table T5 shown in FIG. 5B, it is determined that the READ command is a permitted command, and at the same time, the permitted command size necessary for the interpretation is determined.
 一方、ホスト101からSYNCコマンドが送付された場合、送信元情報に基づきテーブルT5を参照し、SYNCコマンドが当該ホスト101に許可されたコマンドであるか否か判定する。その結果、SYNCコマンドは許可されないコマンドであることが判明する。 On the other hand, when a SYNC command is sent from the host 101, the table T5 is referred to based on the transmission source information, and it is determined whether or not the SYNC command is a command permitted to the host 101. As a result, it is found that the SYNC command is not permitted.
 F22にて、受信したコマンドが送信元に許可されたコマンドである、すなわち正当であると判断された場合、SCSIアクセス制御部113は、SCSI制御部111へ、正当であることを示すメッセージを返す(F23)。ここでは先の例示の通り、正当を示す確認コードと、そのコマンドのサイズを返すものとする。 If it is determined in F22 that the received command is a command permitted by the transmission source, that is, it is determined to be valid, the SCSI access control unit 113 returns a message indicating that the command is valid to the SCSI control unit 111. (F23). Here, as shown in the above example, a confirmation code indicating validity and the size of the command are returned.
 一方、F22にて、受信したコマンドが送信元に許可されたコマンドでない、すなわち不正であると判断された場合、SCSIアクセス制御部113は、SCSI制御部111へ、不正であることを示すメッセージを返す(F24)。ここでは先の例示を参考にすると、不正を示す確認コードを返すものとする。不正の場合、許可コマンドサイズは返す必要はないが、正当の場合とフォーマットを統一するために、メッセージにおける許可コマンドサイズをゼロに設定して返送することにしてもよい。 On the other hand, if it is determined in F22 that the received command is not a command permitted by the transmission source, that is, it is illegal, the SCSI access control unit 113 sends a message indicating that it is illegal to the SCSI control unit 111. Return (F24). Here, referring to the previous example, a confirmation code indicating fraud shall be returned. If it is illegal, it is not necessary to return the permitted command size, but in order to unify the format with the legal case, the permitted command size in the message may be set to zero and returned.
 本実施例では、CPU410がストレージプログラムを実行することにより、ストレージとして動作するソフトウェアストレージ110と、コマンドに対してソフトウェアストレージ110による処理を許可するか否かを制御するコマンド処理部123と、コマンド処理部123がコマンドに対する処理を許可するか否かを、コマンドの要求元のそれぞれ毎に個別に判定するためのコマンド制御情報を管理するSCSIアクセス制御部113と、が構築される。SCSIアクセス制御部113は、管理基盤103からのペア情報を受信するペア情報受信部200と、ペア情報およびコマンドリスト情報に基づいてコマンド制御情報を生成するコマンド制御情報生成部201と、コマンド制御情報に規定されたコマンドサイズに基づいて定まるコマンドを一時的に保持するバッファのサイズであるコマンドバッファサイズをコマンド処理部123に通知するコマンドバッファサイズ通知部202と、コマンド処理部123からコマンドの処理を許可するか否かの問合せ処理の制御信号をコマンド処理部123と送受信する確認要求送受信部203と、確認要求送受信部203で送受信される制御信号にて確認が要求されたコマンドについて処理を許可するか否か判定する確認要求検証部204と、を有する。本実施例に用いられる技術により、接続相手を単位に、SCSIコマンドの処理権限を付与することができ、その結果、不正なSCSIコマンドを処理してしまうということを防止でき、セキュリティ性を向上させることができる。 In this embodiment, the CPU 410 executes a storage program, whereby the software storage 110 that operates as a storage, the command processing unit 123 that controls whether or not the processing by the software storage 110 is permitted for a command, and command processing A SCSI access control unit 113 that manages command control information for individually determining whether each of the command request sources determines whether or not the unit 123 permits processing for the command is constructed. The SCSI access control unit 113 includes a pair information receiving unit 200 that receives pair information from the management infrastructure 103, a command control information generating unit 201 that generates command control information based on the pair information and command list information, and command control information. A command buffer size notifying unit 202 that notifies the command processing unit 123 of a command buffer size that is a size of a buffer that temporarily holds a command determined based on the command size specified in the command processing, and a command processing from the command processing unit 123 Confirmation request transmission / reception unit 203 that transmits / receives a control signal for inquiry processing as to whether to permit or not, and a command for which confirmation is requested by a control signal transmitted / received by confirmation request transmission / reception unit 203 is permitted. A confirmation request verification unit 204 for determining whether or not . With the technology used in this embodiment, the SCSI command processing authority can be granted in units of connection partners, and as a result, it is possible to prevent unauthorized SCSI commands from being processed and to improve security. be able to.
 実施例2について図面を参照して詳細に説明する。実施例1は、IPネットワーク上で構築されるソフトウェアストレージシステムに着目した例であった。一方、本実施例のシステムはFCoE(Fibre Channel over Ethernet)を利用するものである。以下、本実施例について主に実施例1と相違する点に着目して説明する。本実施例の説明においても全図に示す同一の番号は同一の機能を持つため説明を省略する。 Example 2 will be described in detail with reference to the drawings. The first embodiment is an example focusing on a software storage system constructed on an IP network. On the other hand, the system of the present embodiment uses FCoE (Fibre Channel over Ethernet). Hereinafter, the present embodiment will be described mainly focusing on differences from the first embodiment. Also in the description of the present embodiment, the same numbers shown in all the drawings have the same functions, and thus the description thereof is omitted.
 図9は実施例2に係る計算機システム20の機能構成例を示すブロック図である。計算機システム20は、ホスト300、301、リモートストレージ302、管理基盤303、およびソフトウェアストレージインスタンス304を有している。 FIG. 9 is a block diagram illustrating a functional configuration example of the computer system 20 according to the second embodiment. The computer system 20 includes hosts 300 and 301, a remote storage 302, a management infrastructure 303, and a software storage instance 304.
 ホスト300、ホスト301、リモートストレージ302、管理基盤303、ソフトウェアストレージインスタンス304は、それぞれ第一の実施例で示した図1のホスト101、リモートストレージ102、管理基盤103、ソフトウェアストレージインスタンス104と同等の機能を持つ。 The host 300, host 301, remote storage 302, management infrastructure 303, and software storage instance 304 are equivalent to the host 101, remote storage 102, management infrastructure 103, and software storage instance 104 of FIG. Has function.
 ただし、実施例2では、実施例1のものようにIPネットワークに接続されるのではなく、FCoEにて接続される。それゆえ、ソフトウェアストレージインスタンス304は、図1AのIP制御部112の代わりに、FCoEのプロトコル処理を実施するFCoE制御部310を有する。 However, in the second embodiment, it is not connected to the IP network as in the first embodiment, but is connected by FCoE. Therefore, the software storage instance 304 includes an FCoE control unit 310 that performs FCoE protocol processing instead of the IP control unit 112 of FIG. 1A.
 また、管理基盤303は、図1Aの管理基盤103と異なり、鍵情報テーブル134を持たない。これは、FCoEは暗号化機能をプロトコルとして実装していないためである。ただし、標準仕様でない暗号化機能を備えたFCoEスイッチ等を本計算機システム20に導入する場合、図1Aの鍵情報テーブル134と同等の鍵情報をホスト300、301およびリモートストレージ302とソフトウェアストレージ304に用意しておけばよい。その場合、管理基盤303による鍵配布を実施する必要がないため、本計算機システム20の初期設定においては、図3のフローチャートにおいてステップF1,F2,F5だけを実施すればよく、ステップF3,F4は実施する必要がない。 Also, the management infrastructure 303 does not have the key information table 134 unlike the management infrastructure 103 of FIG. 1A. This is because FCoE does not implement an encryption function as a protocol. However, when an FCoE switch or the like having an encryption function that is not a standard specification is introduced into the computer system 20, key information equivalent to the key information table 134 of FIG. 1A is stored in the hosts 300 and 301, the remote storage 302, and the software storage 304. Prepare it. In this case, since it is not necessary to perform key distribution by the management infrastructure 303, in the initial setting of the computer system 20, only steps F1, F2, and F5 need be performed in the flowchart of FIG. There is no need to implement.
 図10は、実施例2におけるSCSIアクセス制御部113と他の各部との接続を示した図である。図10に示すSCSIアクセス制御部113は、図4に示した実施例1におけるIP制御部112の代わりにFCoE制御部310がペア情報受信部200に接続されている。 FIG. 10 is a diagram illustrating connections between the SCSI access control unit 113 and other units in the second embodiment. In the SCSI access control unit 113 illustrated in FIG. 10, an FCoE control unit 310 is connected to the pair information reception unit 200 instead of the IP control unit 112 in the first embodiment illustrated in FIG. 4.
 本実施例では、実施例1と異なり、IPsecは用いられない。それゆえ、FCoEによる通信における接続相手の正当性を認証すること、及び接続相手と送受信する通信データを暗号化することはできない。 In this embodiment, unlike the first embodiment, IPsec is not used. Therefore, it is impossible to authenticate the legitimacy of the connection partner in communication using FCoE and to encrypt communication data transmitted to and received from the connection partner.
 一方、実施例2においてもSCSIアクセス制御部113は実施例1のものと同等の機能を提供することができる。具体的に、SCSIアクセス制御部113は、接続相手の単位に、SCSIコマンドを利用する権限を付与することができる。これにより、ソフトウェアストレージインスタンス304はペア未登録、すなわちペアになっていないホスト300からの接続を禁止し、ペアになっているホスト301にはI/Oコマンドについてのみ利用する権限を付与し、リモートストレージ302にはリモートコピー制御についてのみ実施する権限を付与するということができる。この結果、ソフトウェアストレージインスタンス304が不正なSCSIコマンドを処理してしまうのを防止することができ、セキュリティ性を向上することができる。 On the other hand, also in the second embodiment, the SCSI access control unit 113 can provide a function equivalent to that of the first embodiment. Specifically, the SCSI access control unit 113 can grant the authority to use the SCSI command to the connection partner unit. As a result, the software storage instance 304 is not registered as a pair, that is, prohibits connection from the unpaired host 300, and grants the right to use only the I / O command to the paired host 301. It can be said that the storage 302 is authorized to perform only the remote copy control. As a result, it is possible to prevent the software storage instance 304 from processing an illegal SCSI command, and to improve security.
10…計算機システム、100…ホスト、101…ホスト、102…リモートストレージ、103…管理基盤、104…ソフトウェアストレージインスタンス、104A…ソフトウェアストレージサーバ、110…ソフトウェアストレージ、111…SCSI制御部、112…IP制御部、113…SCSIアクセス制御部、114…ドライブ群、120…コマンド制御部、121…データ制御部、122…ドライブ制御部、123…コマンド処理部、124…IPsec処理部、125…SCSIコマンド制御情報、130…オーケストレータ、131…情報機器管理部、132…ストレージアクセス管理部、133…構成情報テーブル、134…鍵情報テーブル、135…ペア情報テーブル、20…計算機システム、200…ペア情報受信部、201…SCSIコマンド制御情報生成部、201…コマンド制御情報生成部、202…コマンドバッファサイズ通知部、203…確認要求送受信部、204…確認要求検証部、205…SCSIコマンドリスト、220…ネットワーク、300…ホスト、301…ホスト、302…リモートストレージ、303…管理基盤、304…ソフトウェアストレージインスタンス、310…FCoE制御部、410…CPU、411…CPUコア、420…メモリ、431…HBA、432…NIC、451…SSD、452…HDD、460…ディスク装置、900…IPネットワーク DESCRIPTION OF SYMBOLS 10 ... Computer system, 100 ... Host, 101 ... Host, 102 ... Remote storage, 103 ... Management infrastructure, 104 ... Software storage instance, 104A ... Software storage server, 110 ... Software storage, 111 ... SCSI control part, 112 ... IP control 113: SCSI access control unit, 114 ... Drive group, 120 ... Command control unit, 121 ... Data control unit, 122 ... Drive control unit, 123 ... Command processing unit, 124 ... IPsec processing unit, 125 ... SCSI command control information 130 ... Orchestrator 131 ... Information device management unit 132 ... Storage access management unit 133 ... Configuration information table 134 ... Key information table 135 ... Pair information table 20 ... Computer system 200 ... Pair information reception , 201 ... SCSI command control information generation unit, 201 ... command control information generation unit, 202 ... command buffer size notification unit, 203 ... confirmation request transmission / reception unit, 204 ... confirmation request verification unit, 205 ... SCSI command list, 220 ... network , 300 ... Host, 301 ... Host, 302 ... Remote storage, 303 ... Management infrastructure, 304 ... Software storage instance, 310 ... FCoE control unit, 410 ... CPU, 411 ... CPU core, 420 ... Memory, 431 ... HBA, 432 ... NIC, 451 ... SSD, 452 ... HDD, 460 ... disk device, 900 ... IP network

Claims (11)

  1.  ストレージとしてデータを格納し、該データを利用するホストおよび該データのリモートコピーを実現するリモートストレージと接続するソフトウェアストレージであって、
     前記ホストからのI/Oコマンドおよび前記リモートストレージとのリモートコピーを含むストレージ制御コマンドを処理するためのストレージプログラムを実行するプロセッサと、
     前記ストレージプログラムと前記プロセッサが前記ストレージプログラムを実行するための情報とを記憶するメモリと、を備え、
     前記メモリは、前記ソフトウェアストレージへ接続するホストまたはリモートストレージに対してそれぞれ個別に許可するストレージ制御コマンドのコマンド種別を限定するコマンド制御情報を予め記憶し、
     前記プロセッサは、前記ホストまたは前記リモートストレージからストレージ制御コマンドを受信すると、前記コマンド制御情報を参照し、前記受信したストレージ制御コマンドが前記ストレージ制御コマンドの要求元に許可されるストレージ制御コマンドであるか否か判定し、許可される場合に前記ストレージ制御コマンドを前記ストレージプログラムにより実行する、
    計算機。
    Software storage that stores data as storage and connects to a host that uses the data and a remote storage that implements remote copying of the data,
    A processor for executing a storage program for processing a storage control command including an I / O command from the host and a remote copy with the remote storage;
    A memory for storing the storage program and information for the processor to execute the storage program;
    The memory stores in advance command control information that limits a command type of a storage control command that is individually permitted to a host or remote storage connected to the software storage,
    When the processor receives a storage control command from the host or the remote storage, the processor refers to the command control information, and whether the received storage control command is a storage control command permitted to the requester of the storage control command. Determining whether or not to execute the storage control command by the storage program when permitted.
    calculator.
  2.  前記コマンド制御情報は、更に、前記ホストまたは前記リモートストレージに対して許可するコマンド種別毎に、許可するコマンドサイズを限定する情報であり、
     前記プロセッサは、前記コマンド制御情報における前記コマンドサイズに基づいて、処理するストレージ制御コマンドを保持するバッファのサイズを設定し、前記ホストまたは前記リモートストレージからストレージ制御コマンドを受信すると、該ストレージ制御コマンドが前記バッファに格納できるサイズであれば該バッファに格納し、前記コマンド制御情報を参照し、前記バッファに格納されている前記ストレージ制御コマンドが前記ストレージ制御コマンドの要求元に許可されるコマンド種別である場合に前記ストレージ制御コマンドを前記ストレージプログラムにより実行する、
    請求項1に記載の計算機。
    The command control information is information that further limits a command size permitted for each command type permitted for the host or the remote storage,
    The processor sets the size of a buffer that holds a storage control command to be processed based on the command size in the command control information, and when the storage control command is received from the host or the remote storage, the storage control command If the size can be stored in the buffer, the storage control command stored in the buffer is referred to the command control information, and the storage control command stored in the buffer is a command type permitted to the storage control command request source. The storage control command is executed by the storage program,
    The computer according to claim 1.
  3.  前記メモリは、予め、コマンド種別毎にコマンドサイズを規定したコマンドリスト情報を保持し、
     前記プロセッサは、システム構成を管理する管理装置から、前記ソフトウェアストレージとペアとなって接続するホストまたはリモートストレージと、前記ホストまたは前記リモートストレージ毎に実行可能なコマンド種別とを示すペア情報を所得し、前記ペア情報と前記コマンドリスト情報とに基づいて前記コマンド制御情報を生成する、
    請求項2に記載の計算機。
    The memory previously holds command list information that defines a command size for each command type,
    The processor obtains pair information indicating a host or remote storage connected as a pair with the software storage and a command type executable for each host or remote storage from a management device that manages a system configuration. , Generating the command control information based on the pair information and the command list information,
    The computer according to claim 2.
  4.  前記プロセッサは、前記管理装置から、前記ホストまたは前記リモートストレージとの通信を暗号化するための暗号鍵を取得し、該暗号鍵を前記ホストまたは前記リモートストレージとの通信の暗号化に用いる、請求項3に記載の計算機。 The processor acquires, from the management device, an encryption key for encrypting communication with the host or the remote storage, and uses the encryption key for encryption of communication with the host or the remote storage. Item 4. The computer according to item 3.
  5.  前記プロセッサが前記ストレージプログラムを実行することにより、前記ソフトウェアストレージと、前記ストレージ制御コマンドに対して前記ソフトウェアストレージによる処理を許可するか否かを制御するコマンド処理部と、前記コマンド処理部が前記ストレージ制御コマンドに対する処理を許可するか否か判定するための前記コマンド制御情報を管理するアクセス制御部と、が構築され、
     前記アクセス制御部は、
     前記管理装置からの前記ペア情報を受信するペア情報受信部と、
     前記ペア情報および前記コマンドリスト情報に基づいて前記コマンド制御情報を生成するコマンド制御情報生成部と、
     前記コマンド制御情報に規定されたコマンドサイズに基づいて定まる前記ストレージ制御コマンドを一時的に保持するバッファのサイズであるコマンドバッファサイズを前記コマンド処理部に通知するコマンドバッファサイズ通知部と、
     前記コマンド処理部からストレージ制御コマンドの処理を許可するか否かの問合せ処理の制御信号を前記コマンド処理部と送受信する確認要求送受信部と、
     前記確認要求送受信部で送受信される制御信号にて確認が要求されたストレージ制御コマンドについて処理を許可するか否か判定する確認要求検証部と、
    を有する請求項3に記載の計算機。
    When the processor executes the storage program, the software storage, a command processing unit that controls whether or not the processing by the software storage is permitted for the storage control command, and the command processing unit includes the storage An access control unit that manages the command control information for determining whether or not to permit processing for the control command is constructed;
    The access control unit
    A pair information receiving unit for receiving the pair information from the management device;
    A command control information generating unit that generates the command control information based on the pair information and the command list information;
    A command buffer size notifying unit for notifying the command processing unit of a command buffer size that is a size of a buffer that temporarily holds the storage control command determined based on a command size defined in the command control information;
    A confirmation request transmission / reception unit that transmits / receives a control signal of inquiry processing as to whether or not to allow processing of a storage control command from the command processing unit;
    A confirmation request verification unit that determines whether or not to permit processing for a storage control command for which confirmation is requested by a control signal transmitted and received by the confirmation request transmission / reception unit;
    The computer according to claim 3.
  6.  ストレージとしてデータを格納し、該データを利用するホストおよび該データのリモートコピーを実現するリモートストレージと接続するソフトウェアストレージであり、前記ホストからのI/Oコマンドおよび前記リモートストレージとのリモートコピーを含むストレージ制御コマンドを処理するためのストレージプログラムを実行するプロセッサと、前記プロセッサが前記ストレージプログラムを実行するための情報を記憶するメモリと、を備え、前記メモリは、前記ソフトウェアストレージへ接続するホストまたはリモートストレージに対してそれぞれ個別に許可するストレージ制御コマンドのコマンド種別および許可するコマンドサイズを限定するコマンド制御情報を予め記憶し、前記プロセッサは、前記ホストまたは前記リモートストレージからストレージ制御コマンドを受信すると、前記コマンド制御情報を参照し、前記受信したストレージ制御コマンドが前記ストレージ制御コマンドの要求元に許可されるストレージ制御コマンドであるか否か判定し、許可される場合に前記ストレージ制御コマンドを前記ストレージプログラムにより実行する、ソフトウェアストレージと、
     システム構成を管理する管理装置と、を備え、
     前記ソフトウェアストレージは、前記メモリが、予め、コマンド種別毎にコマンドサイズを規定したコマンドリスト情報を保持し、前記プロセッサが、前記管理装置から、前記ソフトウェアストレージとペアとなって接続するホストまたはリモートストレージと、前記ホストまたは前記リモートストレージ毎に実行可能なストレージ制御コマンドのコマンド種別とを示すペア情報を所得し、前記ペア情報と前記コマンドリスト情報とに基づいて前記コマンド制御情報を生成する、
    計算機システム。
    Software storage for storing data as storage and connecting to a host that uses the data and a remote storage that implements remote copy of the data, including I / O commands from the host and remote copy to the remote storage A processor that executes a storage program for processing a storage control command; and a memory that stores information for the processor to execute the storage program, wherein the memory is a host or a remote connected to the software storage Command control information that limits the command type of the storage control command that is individually permitted to the storage and the command size that is permitted is stored in advance, and the processor stores the host or the remote When a storage control command is received from storage, the command control information is referred to, and it is determined whether or not the received storage control command is a storage control command permitted to the requester of the storage control command. Software storage for executing the storage control command by the storage program;
    A management device for managing the system configuration,
    The software storage is a host or remote storage in which the memory previously holds command list information in which a command size is defined for each command type, and the processor is connected to the software storage in pairs from the management device Generating pair information indicating a command type of a storage control command that can be executed for each of the hosts or the remote storage, and generating the command control information based on the pair information and the command list information.
    Computer system.
  7.  前記プロセッサは、前記管理装置から、前記ホストまたは前記リモートストレージとの通信を暗号化するための暗号鍵を取得し、該暗号鍵を前記ホストまたは前記リモートストレージとの通信の暗号化に用いる、請求項6に記載の計算機システム。 The processor acquires, from the management device, an encryption key for encrypting communication with the host or the remote storage, and uses the encryption key for encryption of communication with the host or the remote storage. Item 7. The computer system according to Item 6.
  8.  ストレージとしてデータを格納し、該データを利用するホストおよび該データのリモートコピーを実現するリモートストレージと接続するソフトウェアストレージとして、前記ホストからのI/Oコマンドおよび前記リモートストレージとのリモートコピーを含むストレージ制御コマンドを処理するためのストレージプログラムを実行するプロセッサと、前記プロセッサが前記ストレージプログラムを実行するための情報を記憶するメモリと、を備え、前記メモリは、前記ストレージへ接続するホストまたはリモートストレージに対してそれぞれ個別に許可するコマンド種別を限定するコマンド制御情報を予め記憶する計算機において、前記プロセッサが実行するためのプログラムであって、
     前記プロセッサに、
     前記ホストまたは前記リモートストレージからストレージ制御コマンドを受信すると、前記コマンド制御情報を参照する手順と、
     前記ストレージ制御コマンドが前記ストレージ制御コマンドの要求元に許可されるストレージ制御コマンドであるか否か判定し、許可される場合に前記ストレージ制御コマンドを前記ストレージプログラムにより実行する手順と、を実行させるためのプログラム。
    Storage including data as storage, host using the data and remote storage for realizing remote copy of the data, including I / O commands from the host and remote copy with the remote storage A processor that executes a storage program for processing a control command; and a memory that stores information for the processor to execute the storage program. The memory is connected to a host or a remote storage connected to the storage. In a computer that stores in advance command control information that limits the command types that are individually permitted for each, a program that is executed by the processor,
    In the processor,
    When a storage control command is received from the host or the remote storage, a procedure for referring to the command control information;
    For determining whether or not the storage control command is a storage control command permitted to the requester of the storage control command, and executing the storage control command by the storage program when permitted Program.
  9.  前記コマンド制御情報は、更に、前記ホストまたは前記リモートストレージに対して許可するストレージ制御コマンドのコマンド種別毎に、許可するコマンドサイズを限定する情報であり、
     前記プロセッサに、
     前記ホストまたは前記リモートストレージからストレージ制御コマンドを受信すると、前記コマンド制御情報を参照し、前記受信したストレージ制御コマンドが前記ストレージ制御コマンドの要求元に許可されるコマンド種別かつ許可されるコマンドサイズであるか否か判定させ、
     いずれも許可される場合に前記ストレージ制御コマンドを前記ストレージプログラムにより実行する手順と、を実行させる、
    請求項8に記載のプログラム。
    The command control information is information that further limits a command size permitted for each command type of a storage control command permitted for the host or the remote storage,
    In the processor,
    When a storage control command is received from the host or the remote storage, the command control information is referred to, and the received storage control command is a command type permitted to the requester of the storage control command and a permitted command size. Whether or not
    A procedure for executing the storage control command by the storage program when both are permitted,
    The program according to claim 8.
  10.  前記メモリは、予め、コマンド種別毎にコマンドサイズを規定したコマンドリスト情報を保持し、
     前記プロセッサに、
     システム構成を管理する管理装置から、前記ソフトウェアストレージとペアとなって接続するホストまたはリモートストレージと、前記ホストまたは前記リモートストレージ毎に実行可能なコマンド種別とを示すペア情報を所得させ、
     前記ペア情報と前記コマンドリスト情報とに基づいて前記コマンド制御情報を生成させる、
    請求項9に記載のプログラム。
    The memory previously holds command list information that defines a command size for each command type,
    In the processor,
    From a management device that manages the system configuration, a host or remote storage connected as a pair with the software storage and a pair information indicating a command type that can be executed for each of the host or the remote storage are obtained,
    Generating the command control information based on the pair information and the command list information;
    The program according to claim 9.
  11.  前記プロセッサに、
     前記管理装置から、前記ホストまたは前記リモートストレージとの通信を暗号化するための暗号鍵を取得させ、
     該暗号鍵を前記ホストまたは前記リモートストレージとの通信の暗号化に用いさせる、
    請求項10に記載のプログラム。
    In the processor,
    From the management device, an encryption key for encrypting communication with the host or the remote storage is acquired,
    The encryption key is used for encryption of communication with the host or the remote storage.
    The program according to claim 10.
PCT/JP2016/062300 2016-04-19 2016-04-19 Computer, computer system, and program WO2017183089A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2016/062300 WO2017183089A1 (en) 2016-04-19 2016-04-19 Computer, computer system, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2016/062300 WO2017183089A1 (en) 2016-04-19 2016-04-19 Computer, computer system, and program

Publications (1)

Publication Number Publication Date
WO2017183089A1 true WO2017183089A1 (en) 2017-10-26

Family

ID=60116634

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2016/062300 WO2017183089A1 (en) 2016-04-19 2016-04-19 Computer, computer system, and program

Country Status (1)

Country Link
WO (1) WO2017183089A1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003085059A (en) * 2001-03-16 2003-03-20 Matsushita Electric Ind Co Ltd Firewall setting method and system for the same
JP2005122235A (en) * 2003-10-14 2005-05-12 Hitachi Ltd Storage device and system having communication buffer reservation function
JP2006146767A (en) * 2004-11-24 2006-06-08 Hitachi Ltd Ip-san network filter definition creation method and filter definition setting method

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003085059A (en) * 2001-03-16 2003-03-20 Matsushita Electric Ind Co Ltd Firewall setting method and system for the same
JP2005122235A (en) * 2003-10-14 2005-05-12 Hitachi Ltd Storage device and system having communication buffer reservation function
JP2006146767A (en) * 2004-11-24 2006-06-08 Hitachi Ltd Ip-san network filter definition creation method and filter definition setting method

Similar Documents

Publication Publication Date Title
US11270006B2 (en) Intelligent storage devices with cryptographic functionality
US8042163B1 (en) Secure storage access using third party capability tokens
JP5067771B2 (en) Secure network file access control system
US8601498B2 (en) Accelerator system for use with secure data storage
US8335915B2 (en) Encryption based security system for network storage
US9712398B2 (en) Authenticating connections and program identity in a messaging system
US10360237B2 (en) Secure data replication
US20150358312A1 (en) Systems and methods for high availability of hardware security modules for cloud-based web services
US20080022120A1 (en) System, Method and Computer Program Product for Secure Access Control to a Storage Device
EP3777022B1 (en) Distributed access control
US8745371B2 (en) Unified network architecture having storage devices with secure boot devices
JP2008141581A (en) Secret information access authentication system and method thereof
JP2021500782A (en) Secure access control methods, computer programs, and systems for tools in a secure environment
US20130173903A1 (en) Unified network architecture having storage devices with secure boot devices
WO2021129003A1 (en) Password management method and related device
JP4875781B1 (en) Distributed data storage system
US9582676B2 (en) Adding or replacing disks with re-key processing
US11647020B2 (en) Satellite service for machine authentication in hybrid environments
US20130173906A1 (en) Cloning storage devices through secure communications links
WO2017183089A1 (en) Computer, computer system, and program
Resende et al. Enforcing privacy and security in public cloud storage
CN107517268A (en) A kind of data manipulation method based on SAN storages, apparatus and system
JP2024510881A (en) Quantum key distribution in a multi-cloud environment
Usharani Integrity and Privacy through Authentication Key Exchange Protocols for Distributed Systems
Yu Enhancing Resilience to Compromise in a Public Cloud.

Legal Events

Date Code Title Description
NENP Non-entry into the national phase

Ref country code: DE

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 16899363

Country of ref document: EP

Kind code of ref document: A1

122 Ep: pct application non-entry in european phase

Ref document number: 16899363

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP