JP6816607B2 - ストレージ装置、情報処理装置及びドライバプログラム - Google Patents

ストレージ装置、情報処理装置及びドライバプログラム Download PDF

Info

Publication number
JP6816607B2
JP6816607B2 JP2017066076A JP2017066076A JP6816607B2 JP 6816607 B2 JP6816607 B2 JP 6816607B2 JP 2017066076 A JP2017066076 A JP 2017066076A JP 2017066076 A JP2017066076 A JP 2017066076A JP 6816607 B2 JP6816607 B2 JP 6816607B2
Authority
JP
Japan
Prior art keywords
data
access
unit
storage device
predicted
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
JP2017066076A
Other languages
English (en)
Other versions
JP2018169767A (ja
Inventor
祐一 越山
祐一 越山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2017066076A priority Critical patent/JP6816607B2/ja
Priority to US15/903,081 priority patent/US10459637B2/en
Publication of JP2018169767A publication Critical patent/JP2018169767A/ja
Application granted granted Critical
Publication of JP6816607B2 publication Critical patent/JP6816607B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • 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
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • 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
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3005Arrangements for executing specific machine instructions to perform operations for flow control

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Debugging And Monitoring (AREA)

Description

本発明は、ストレージ装置、情報処理装置及びドライバプログラムに関する。
サーバは、使用するデータを記憶するストレージ装置にIO(Input Output)アクセスする場合、サーバ側のインタフェースとストレージ装置側のインタフェースを介するアクセスパスを用いてアクセスを行う。サーバとストレージ装置との間のアクセスパスは冗長化されることが多く、サーバ上で動作するマルチパスドライバがアクセスパスを選択してストレージ装置にアクセスする。
図18は、サーバからストレージ装置へのIOアクセス例を示す図である。図18に示すように、サーバX、サーバY及びサーバZで表されるサーバ92で動作するユーザアプリ20は、マルチパスドライバ921にIOアクセスを要求する。
マルチパスドライバ921は、サーバ92側のHBA(Host Bus Adapter)22とストレージ装置93側のCA(Channel Adapter)ポート30を介するアクセスパスを選択する。図18では、サーバXで動作するマルチパスドライバ921は、HBA22とCAポートAで表されるCAポート30を介するアクセスパスと他のHBA22とCAポートBで表されるCAポート30を介するアクセスパスのいずれかを選択する。マルチパスドライバ921は、アクセス性能が最適化されるようにアクセスパスを選択する。
サーバ92からストレージ装置93へのIOアクセスにおいて、サーバ92から要求するアクセス流量は以下の2つに依存する。ここで、アクセス流量とは、IOアクセスにおいて転送されるデータの量である。
(1)サーバ92上で動作するユーザアプリ20の特性
(2)サーバ92の役割
上記(1)の例としては、ユーザアプリ20の動作時間帯(業務時間帯、深夜のバックアップ)、ユーザアプリ20のReadとWriteの比率等がある。上記(2)の例としては、メイン業務サーバ、サブ業務サーバ、待機系サーバ等がある。
図19及び図20に、サーバ92の役割に依存するアクセス流量の変化例を示す。図19及び図20において、サーバXはメイン業務サーバであり、サーバYはサブ業務サーバであり、サーバZは待機系サーバである。図19は、月曜日の業務アプリのアクセス流量の変化例を示す図である。ここで、業務アプリとは、業務サーバ及び業務サーバの待機系で動作する業務アプリケーションである。図19において、横軸は時間を示し、縦軸はアクセス流量を示す。図19に示すように、サーバ92の役割に応じて、1日のアクセス流量の時間変化は異なる。
図20は、曜日毎の業務アプリのアクセス流量の統計例を示す図である。図20において、横軸は曜日を示し、縦軸はアクセス流量を示す。図20に示すように、サーバ92の役割に応じて、曜日毎のアクセス流量は異なる。
また、各アクセスパスにおけるアクセス性能は、ストレージ装置93の以下の2つに依存する。
(3)各CAポート30の内部処理ステップ数
(4)各CAポート30に割り当てられるCPU(Central Processing Unit)パワー
上記(3)は、ストレージ装置93がアクセスを受信してからサーバ92へ応答するまでのCM(Controller Module:ストレージ装置93の制御装置)によるIO処理のステップ数であり、CAポート30に依存する。図21は、CAポート30毎の内部処理ステップ数の相違例を示す図である。図21に示すように、各CAポート30のIO処理として、IOアクセスを受領するIO受領処理、記憶部32との間でデータの転送を行うデータ転送処理、IOアクセスに対する応答を行うIO応答処理が行われる。
ただし、CAポートA及びCAポートCのIO処理は、CAポートBとCAポートDのIO処理と比較すると通知処理の分だけ処理ステップ数が多い。ここで、通知処理とは、非担当のCMのCAポート30が担当のCMのCAポート30にIO処理を行ったことを通知する処理である。図21では、CAポートAとCAポートCは、非担当CMにあるCAポート30であり、CAポートBとCAポートDは、担当CMにあるCAポート30である。なお、担当CMは、記憶部32の制御を担当しているCMである。また、図21に示す以外にも、CAポート毎に内部処理ステップ数が異なる場合がある。
上記(4)に関して、図22は、CPUパワーの各CAポート30への割り当て例を示す図である。図22では、CAポートAとCAポートBのIO処理にCPUパワーの20%が割り当てられ、CAポートCとCAポートDのIO処理にCPUパワーの15%が割り当てられ、その他処理にCPUパワーの30%が割り当てられている。
サーバ92上のユーザアプリ20の処理時間を最短とするには、上記(1)、(2)に応じて(3)、(4)を調整する必要がある。しかし、サーバ92には上記(1)、(2)をストレージ装置93へ送信する機能がなく、ストレージ装置93は上記(1)、(2)に応じて(3)、(4)を調整することができない。
このため、マルチパスドライバ921は、ストレージ装置93側から上記(3)、(4)の情報を取得し、アクセスパスを選択する際、取得した(3)の情報を用いて、内部処理ステップの少ないCAポート30へのアクセスパスを優先的に選択する。また、マルチパスドライバ921は、取得した(4)の情報を用いて、CAポート30に割り当てられたCPUパワーを把握し、処理しきれない分のIOアクセスはマルチパスドライバ921内部で一旦保留することで、サーバ92からのアクセス流量を制限する。
なお、複数のプロセッサにデータが分散配置された分散型データベース管理システムで、各プロセッサの処理負荷の偏りを検出し、偏りを均等化させ得るデータ分散配置構成を求め、所定のタイミングでデータ分散配置構成の変更処理を行う技術がある。この技術によれば、各プロセッサにおける処理負荷を容易に均等化することができる。
また、各プロセッサから発行されるメモリアクセスの偏り/競合が判別できるようアクセスの統計を採取するトレース機能によりメモリの負荷状態を検出し、メモリ空間を交換することでメモリアクセスの負荷分散を実現する技術がある。
また、アクセス処理の対象となるデータの容量を示すデータ使用量を、データベースサーバ毎に取得し、データベースサーバ毎のデータ使用量の比率に基づきCPU割当量の比率を計算してデータベースサーバへのCPU資源の割り当てを変更する技術がある。この技術によれば、データベース管理システムの処理性能の低下を少なくし、処理性能のアンバランスを是正することができる。
特開平9−218858号公報 特開2007−257028号公報 特開2007−249468号公報
図18に示したマルチパスドライバ921は、各CAポート30の内部処理ステップ数に基づいてアクセスパスを選択し、各CAポート30に割り当てられたCPUパワーの割合に基づいてアクセス流量を制限する。しかしながら、このようなアクセスパスの選択とアクセス流量の制限では、図18に示したシステム全体としてのアクセス性能を均等化することができないという問題がある。
図23は、従来技術の問題を説明するための図である。図23に示すように、サーバXとサーバYのマルチパスドライバ921が、各CAポート30に割り当てられたCPUパワーの割合に基づいてアクセス流量制限ぎりぎりのアクセス流量で同時にCAポートBへIOアクセスを要求する。すると、CAポートBのIO処理に必要なCPUパワーがCAポートBに割り当てられたCPUパワーを超えてしまい、IOアクセスの再送が必要となる。
本発明は、1つの側面では、複数のサーバからアクセスされる複数のCAポートのIO性能を均等化することを目的とする。
1つの態様では、ストレージ装置は、複数の情報処理装置が使用するデータを記憶する。ストレージ装置は、受信部と変更部とを有する。受信部は、情報処理装置との各インタフェースポートのデータ流量に関して各情報処理装置が予測して送信した予測データを受信する。変更部は、受信部が複数の情報処理装置から受信した予測データに基づいて各インタフェースポートのアクセス予測値を計算し、計算したアクセス予測値に基づいて各インタフェースポートの処理に関する設定を変更する。
1つの側面では、本発明は、複数のサーバからアクセスされる複数のCAポートのIO性能を均等化することができる。
図1は、実施例に係る情報処理システムの構成を示す図である。 図2は、流量データの一例を示す図である。 図3は、予測データ作成部により作成された予測データの一例を示す図である。 図4は、ストレージ装置の予測データ記憶部により記憶される予測データの一例を示す図である。 図5は、サーバによるIOアクセス制御と流量データ作成の処理フローを示す図である。 図6は、サーバによるIOアクセス制御と流量データ作成の処理フローを示すフローチャートである。 図7は、予測データ作成の処理フローを示す図である。 図8は、予測データ作成の処理フローを示すフローチャートである。 図9は、予測データの通信処理のフローを示す図である。 図10は、予測データ送信と予測データ受信の処理フローを示すフローチャートである。 図11は、CAポートのIO処理に関する設定を変更する処理のフローを示す図である。 図12は、内部処理の設定を変更する処理のフローを示すフローチャートである。 図13は、CPUパワー割り当ての設定を変更する処理のフローを示すフローチャートである。 図14は、CPUパワー調整処理のフローを示すフローチャートである。 図15は、IO要求待ちスレッド及びIO要求キュー処理スレッドの処理フローを示すフローチャートである。 図16は、実施例に係る均等化プログラムを実行するCPUを有するCMのハードウェア構成を示す図である。 図17は、実施例に係るマルチパスドライバを実行するコンピュータのハードウェア構成を示す図である。 図18は、サーバからストレージ装置へのIOアクセス例を示す図である。 図19は、月曜日の業務アプリのアクセス流量の変化例を示す図である。 図20は、曜日毎の業務アプリのアクセス流量の統計例を示す図である。 図21は、CAポート毎の内部処理ステップ数の相違例を示す図である。 図22は、CPUパワーの各CAポートへの割り当て例を示す図である。 図23は、従来技術の問題を説明するための図である。
以下に、本願の開示するストレージ装置、情報処理装置及びドライバプログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例は開示の技術を限定するものではない。
まず、実施例に係る情報処理システムの構成について説明する。図1は、実施例に係る情報処理システムの構成を示す図である。図1に示すように、実施例に係る情報処理システム1は、サーバA、サーバB及びサーバCで表される3台のサーバ2と、CAポートA、CAポートB、CAポートC及びCAポートDで表される4つのCAポート30を有するストレージ装置3とを有する。サーバ2は、情報処理を行う装置である。ストレージ装置3は、サーバ2が使用するデータを記憶する不揮発性の記憶部32を有する装置である。
なお、ここでは説明の便宜上、3台のサーバ2を示したが、情報処理システム1は、2台又は4台以上のサーバ2を有してよい。また、ストレージ装置3は、2つ、3つ又は5つ以上のCAポート30を有してよい。
サーバ2では、ユーザアプリ20とマルチパスドライバ21が動作する。ユーザアプリ20は、業務アプリケーション等のユーザアプリケーションである。また、サーバ2は、HBA22を有する。HBA22は、ストレージ装置3とのインタフェースである。CAポート30は、サーバ2とのインタフェースである。
マルチパスドライバ21は、IO中継部211と、パス選択部212と、統計部213と、流量データ記憶部214と、予測データ作成部215と、予測データ記憶部216と、予測データ送信部217とを有する。
IO中継部211は、ユーザアプリ20からストレージ装置3へのIOアクセス要求を中継する。IO中継部211は、パス選択部212により選択されたアクセスパスに基づいて、ユーザアプリ20からストレージ装置3へのIO要求をHBA22に渡す。パス選択部212は、各アクセスパスの利用が分散されるようにアクセスパスを選択する。
IO中継部211は、中継したIOアクセス要求に関する情報をアクセス情報として統計部213に渡す。アクセス情報には、アクセス先のCAポート30、アクセス日時、転送データサイズ、ReadであるかWriteであるかを示す情報が含まれる。
統計部213は、アクセス情報を統計処理して流量データを作成し、流量データ記憶部214に格納する。流量データ記憶部214は、流量データを記憶する。図2は、流量データの一例を示す図である。図2に示すように、流量データには、CAポート名、月日、時間帯、Readアクセス数、Read転送データサイズ、Writeアクセス数、Write転送データサイズが含まれる。
CAポート名は、CAポート30の名前であり、流量データがどのCAポート30に関するデータであるかを示す。図2は、CAポートAに関する流量データである。月日は、ストレージ装置3へのIOアクセスが行われた月と日である。時間帯は、ストレージ装置3へのIOアクセスが行われた時間である。図2では、ストレージ装置3へのIOアクセスが1時間単位で集計される。
Readアクセス数は、ストレージ装置3へのReadアクセスの回数である。Read転送データサイズは、Readアクセスによりストレージ装置3からサーバ2へ転送されたデータのサイズである。Writeアクセス数は、ストレージ装置3へのWriteアクセスの回数である。Write転送データサイズは、Writeアクセスによりサーバ2からストレージ装置3へ転送されたデータのサイズである。
例えば、CAポートAに関しては、「8月2日」の「9:00」〜「9:59」の間に、Readアクセスが「200000回」行われ、ストレージ装置3からサーバ2へ「30GB(ギガバイト)」のデータが転送された。また、同じ時間帯に、Writeアクセスが「300000回」行われ、サーバ2からストレージ装置3へ「40GB」のデータが転送された。
予測データ作成部215は、流量データ記憶部214が記憶する流量データを用いて未来の流量を予測し、予測データを作成する。予測データ作成部215は、例えば、過去の流量データの曜日毎時間帯毎の平均値を計算して予測データを作成する。予測データ作成部215は、CAポート30毎に予測データを作成し、予測データ記憶部216に格納する。予測データ記憶部216は、予測データ作成部215により作成された予測データを記憶する。
図3は、予測データ作成部215により作成された予測データの一例を示す図である。図3に示すように、予測データには、CAポート名、曜日、時間帯、Readアクセス数、Read転送データサイズ、Writeアクセス数、Write転送データサイズが含まれる。
CAポート名は、CAポート30の名前であり、予測データがどのCAポート30に関するデータであるかを示す。図3は、CAポートAに関する予測データである。曜日は、予測が行われた曜日である。時間帯は、予測が行われた時間である。図3では、予測が1時間単位で行われる。
Readアクセス数は、ストレージ装置3へのReadアクセスの予測回数である。Read転送データサイズは、Readアクセスによりストレージ装置3からサーバ2へ転送されるデータの予測サイズである。Writeアクセス数は、ストレージ装置3へのWriteアクセスの予測回数である。Write転送データサイズは、Writeアクセスによりサーバ2からストレージ装置3へ転送されるデータの予測サイズである。
例えば、CAポートAに関しては、「日曜日」の「1:00」〜「1:59」の間に、Readアクセスが「20000回」行われることが予測され、ストレージ装置3からサーバ2へ「20GB」のデータが転送されることが予測される。また、同じ時間帯に、Writeアクセスが「30000回」行われることが予測され、サーバ2からストレージ装置3へ「40GB」のデータが転送されることが予測される。
予測データ送信部217は、予測データをストレージ装置3に送信する必要があるか否かを判定し、送信する必要がある場合に、予測データ記憶部216が記憶する予測データをIO中継部211の通信データに付与してIO中継部211に渡す。ここで、通信データには、アクセス先の情報、ReadとWriteの区別、Writeの場合のデータ等が含まれる。IO中継部211は、予測データを通信データとともにストレージ装置3に送信する。
図1に戻って、ストレージ装置3では、CAポートA〜CAポートDのIO性能を均等化する均等化部31が動作する。均等化部31は、予測データ受信部311と、予測データ記憶部312と、処理ステップ変更部313と、CPUパワー変更部314とを有する。
予測データ受信部311は、サーバ2から送信された通信データに予測データが含まれるか否かを判定し、予測データが含まれている場合には、予測データを予測データ記憶部312に格納する。予測データ記憶部312は、予測データ受信部311により通信データから取り出された予測データを記憶する。予測データ記憶部312は、サーバA、サーバB及びサーバCから送られた予測データをサーバ毎ポート毎に記憶する。
図4は、予測データ記憶部312により記憶される予測データの一例を示す図である。図4に示すように、予測データ記憶部312により記憶される予測データには、CAポート名、サーバ名、曜日、時間帯、Readアクセス数、Read転送データサイズ、Writeアクセス数、Write転送データサイズが含まれる。
CAポート名は、CAポート30の名前であり、予測データがどのCAポート30に関するデータであるかを示す。図4は、CAポートAに関する予測データである。サーバ名は、サーバ2の名前であり、予測データがどのサーバ2に関するデータであるかを示す。図4は、サーバAに関する予測データである。曜日、時間帯、Readアクセス数、Read転送データサイズ、Writeアクセス数及びWrite転送データサイズは、図3に示したものと同じである。
例えば、CAポートAに関しては、「日曜日」の「1:00」〜「1:59」の間に、Readアクセスが「20000回」行われることが予測され、ストレージ装置3からサーバAへ「20GB」のデータが転送されることが予測される。また、同じ時間帯に、Writeアクセスが「30000回」行われることが予測され、サーバAからストレージ装置3へ「40GB」のデータが転送されることが予測される。
処理ステップ変更部313は、予測データ記憶部312により記憶される予測データを用いて各CAポート30へのアクセス予測数を比較する。ここで、アクセス予測数は、サーバA、サーバB及びサーバCから送信された予測データのReadアクセス数とWriteアクセス数を合計した値である。
そして、処理ステップ変更部313は、アクセス予測数が少ないCAポート30に関して内部処理ステップ数の多い処理を行うように、CAポート30の内部処理の設定を変更する。例えば、CAポートAとCAポートCのアクセス予測数がCAポートBとCAポートDのアクセス予測数より少ない場合には、処理ステップ変更部313は、CAポートAとCAポートCで内部処理ステップ数の多い処理を行うように設定を変更する。
また、例えば、2つのCM(ストレージ装置3の制御装置)にそれぞれ2つのCAポート30がある場合には、処理ステップ変更部313は、同じCMにある2つのCAポート30のアクセス予測数の合計を計算する。そして、処理ステップ変更部313は、合計値が少ない方のCMを非担当CMとして通知処理を行わせるように設定を変更する。
CPUパワー変更部314は、各CAポート30へのアクセス予測流量に基づいてCPUパワーの各CAポート30への割り当てを変更する。ここで、アクセス予測流量は、サーバA、サーバB及びサーバCから送信された予測データのRead転送データサイズとWriteデータ転送サイズを合計した値である。
例えば、CPUパワー変更部314は、アクセス予測流量に基づいて、現在の各CAポート30へのCPU割り当てを調整する。あるいは、CPUパワー変更部314は、アクセス予測流量の比率と同じ割合となるように、CPUパワーの各CAポート30への割り当てを変更する。
なお、CMが2つ以上あり、各CMにCPUがある場合には、各CMのCPUは、CMにあるCAポート30のIO処理を実行する。したがって、CPUパワー変更部314は、CMにあるCAポート30のIO処理とその他処理に割り当てられるCPUパワーの合計が100%となるようにCPUパワーを各CAポート30へ割り当てる。また、CMが2つ以上あり、各CMにCPUがある場合には、いずれかのCMが均等化部31を有する。
次に、サーバ2によるIOアクセス制御と流量データ作成の処理フローについて説明する。図5は、サーバ2によるIOアクセス制御と流量データ作成の処理フローを示す図であり、図6は、サーバ2によるIOアクセス制御と流量データ作成の処理フローを示すフローチャートである。
図5に示すように、ユーザアプリ20がマルチパスドライバ21へIOアクセスを要求する(処理#1)。すると、IO中継部211がパス選択部212へ問い合わせを行い、パス選択部212がアクセスパスを選択し、選択したアクセスパスをIO中継部211に通知する(処理#2)。
そして、IO中継部211が通知されたアクセスパスを使用してストレージ装置3へアクセスする(処理#3)。そして、IO中継部211がアクセス情報を統計部213へ通知する(処理#4)。そして、統計部213がアクセス情報を統計処理し、流量データを作成し、流量データ記憶部214に格納する(処理#5)。
また、図6に示すように、マルチパスドライバ21は、ユーザアプリ20からIOアクセス要求を受け付け(ステップS1)、アクセスパスを選択する(ステップS2)。そして、マルチパスドライバ21は、選択したアクセスパスでストレージ装置3へアクセスする(ステップS3)とともに、流量データを作成する流量スレッドにアクセス情報を通知する。ここで、流量スレッドは、統計部213に対応する。
流量スレッドは、アクセス情報を受信し(ステップS11)、アクセス先CAポート30の流量データテーブルがあるか否かを判定する(ステップS12)。ここで、流量データテーブルは、流量データが登録されるテーブルである。そして、流量スレッドは、流量データテーブルがない場合には、流量データテーブルを作成する(ステップS13)。
そして、流量スレッドは、流量データテーブルにアクセス日時のデータ域が存在するか否かを判定し(ステップS14)、存在しない場合には、古い日時のデータ域を削除し、アクセス日時のデータ域を作成する(ステップS15)。そして、流量スレッドは、受信したアクセス情報を用いて、アクセス日時のデータ域の情報を更新する(ステップS16)。
このように、マルチパスドライバ21は、IOアクセスの実績に基づいて流量データを作成することで、未来の流量データを予測することができる。
次に、予測データ作成の処理フローについて説明する。図7は、予測データ作成の処理フローを示す図であり、図8は、予測データ作成の処理フローを示すフローチャートである。
図7に示すように、予測データ作成部215は、流量データ記憶部214に記憶された流量データを用いて未来予測を行い、予測データを作成し、予測データ記憶部216に格納する(処理#1)。なお、予測データ作成部215は、24時間間隔等の一定時間間隔で予測データを作成する。
また、図8に示すように、予測データ作成部215は、CAポート30毎にステップS21〜ステップS26の処理を行う。なお、図8は、火曜日の予測データを作成する場合のフローチャートを示すが、他の曜日の予測データも同様に作成される。
予測データ作成部215は、流量データを参照し(ステップS21)、火曜日のデータがあるか否かを判定する(ステップS22)。そして、火曜日のデータがない場合には、予測データ作成部215は、ステップS21に戻って次のCAポート30の処理を行う。
一方、火曜日のデータがある場合には、予測データ作成部215は、該当CAポート30の予測データテーブルがあるか否かを判定する(ステップS23)。ここで、予測データテーブルは、予測データが登録されるテーブルである。そして、該当CAポート30の予測データテーブルがない場合には、予測データ作成部215は、予測データテーブルを作成する(ステップS24)。
そして、予測データ作成部215は、流量データから未来予測を行う(ステップS25)。そして、予測データ作成部215は、予測データテーブルを更新し、予測データ送信状態を未送信に設定する(ステップS26)。そして、予測データ作成部215は、全てのCAポート30の流量データテーブルを参照すると、処理を終了する。
このように、予測データ作成部215が流量データを用いて予測データを作成することで、情報処理システム1は、予測データに基づいて、CAポート30のIO性能を均等化することができる。
次に、予測データの通信処理のフローについて説明する。図9は、予測データの通信処理のフローを示す図であり、図10は、予測データ送信と予測データ受信の処理フローを示すフローチャートである。
図9に示すように、ユーザアプリ20がマルチパスドライバ21へIOアクセスを要求する(処理#1)。すると、IO中継部211がパス選択部212へ問い合わせを行い、パス選択部212がアクセスパスを選択し、選択したアクセスパスをIO中継部211に通知する(処理#2)。
そして、IO中継部211が予測データ送信部217に問い合わせを行い、予測データ送信部217が予測データ送信状態に基づいて予測データの送信要否を判定する。そして、予測データの送信が必要な場合、予測データ送信部217は、予測データを取得し、IOアクセスで通信する通信データに予測データを付与する(処理#3)。
そして、IO中継部211が、通知されたアクセスパスへIOアクセスを発行して、ストレージ装置3へのIOアクセスを行う(処理#4)。そして、ストレージ装置3の予測データ受信部311が、通信データに予測データが含まれるかを判定し、予測データが含まれている場合には、受信した予測データをストレージ装置3の予測データ記憶部312に格納する(処理#5)。
また、図10に示すように、マルチパスドライバ21は、ユーザアプリ20からIOアクセス要求を受け付け(ステップS31)、アクセスパスを選択する(ステップS32)。そして、マルチパスドライバ21は、アクセス先のCAポート30の予測データの送信状態を確認し(ステップS33)、予測データ送信状態が未送信であるか否かを判定する(ステップS34)。
そして、予測データ送信状態が未送信である場合には、マルチパスドライバ21は、通信データのIOパケットの空き領域に予測データを付与し(ステップS35)、予測データ送信状態を送信済に設定する(ステップS36)。そして、マルチパスドライバ21は、選択したアクセスパスでストレージ装置3へアクセスする(ステップS37)。
また、ストレージ装置3は、サーバ2から通信データを受信し(ステップS41)、予測データ受信部311が、通信データのIOパケットの空き領域に予測データが付与されているか否かを判定する(ステップS42)。そして、通信データのIOパケットの空き領域に予測データが付与されている場合には、別のスレッドが、予測データのみ抽出し(ステップS43)、予測データ記憶部312に予測データを格納する(ステップS44)。
一方、通信データのIOパケットの空き領域に予測データが付与されていない場合、あるいは、別のスレッドが予測データのみ抽出した後、ストレージ装置3は、通信データに対する処理を実行する(ステップS45)。すなわち、ストレージ装置3は、IO受領処理、データ転送処理、IO応答処理等を行う。
このように、マルチパスドライバ21が通信データに予測データを付与してストレージ装置3に送信することで、ストレージ装置3は、予測データを取得することができる。
次に、CAポート30のIO処理に関する設定を変更する処理のフローについて説明する。図11は、CAポート30のIO処理に関する設定を変更する処理のフローを示す図であり、図12は、内部処理の設定を変更する処理のフローを示すフローチャートであり、図13は、CPUパワー割り当ての設定を変更する処理のフローを示すフローチャートである。なお、CAポート30のIO処理に関する設定を変更する処理は、1時間間隔等の一定時間間隔で行われる。
図11に示すように、処理ステップ変更部313は、予測データ記憶部312を参照して、各CAポート30へのアクセス予測数を比較する。そして、処理ステップ変更部313は、アクセス予測数の少ないCAポート30のIO処理で内部ステップ数が多い処理を実行するようにCAポート30の内部処理の設定を変更する(処理#1)。
また、CPUパワー変更部314は、予測データ記憶部312を参照して、各CAポート30へのアクセス予測流量を比較する。そして、CPUパワー変更部314は、アクセス予測流量に応じたCPUパワーを各CAポート30に割り当てる(処理#2)。
そして、IO要求待ちスレッドが、各サーバ2からのIOアクセス要求をCAポート30毎にIO待ちキューに登録する。また、IO要求キュー処理スレッドが、各CAポート30に割り当てられたCPUパワーに基づいて、各CAポート30毎のIO待ちキューからIOアクセス要求を取り出して処理する。
また、図12に示すように、処理ステップ変更部313は、CAポート30を1つ指定して別の予測数計算スレッドでアクセス予測数を計算させる処理を全CAポート30について行う。
予測数計算スレッドは、該当CAポート30のアクセス予測数を0で初期化する(ステップS51)。そして、予測数計算スレッドは、該当CAポート30の予測データテーブルが存在するか否かを判定し(ステップS52)、予測データテーブルが存在しない場合には、処理を終了する。
一方、予測データテーブルが存在する場合には、予測数計算スレッドは、予測データテーブルから対象時間帯のReadアクセス数とWriteアクセス数を取得し、Readアクセス数とWriteアクセス数を該当CAポート30のアクセス予測数へ加算する(ステップS53)。予測数計算スレッドは、ステップS53の処理を全サーバ2の予測データテーブルについて行う。
そして、処理ステップ変更部313は、各CAポート30のアクセス予測数を比較する(ステップS61)。そして、処理ステップ変更部313は、アクセス予測数の少ないCAポート30のIO処理として内部処理ステップ数の多い処理を実行するように各CAポート30の内部処理の設定を変更する(ステップS62)。
このように、処理ステップ変更部313がアクセス予測数に基づいて内部処理の設定を変更することで、ストレージ装置3は、サーバ2からのIOアクセスの性能をCAポート30間で均等化することができる。
また、図13に示すように、CPUパワー変更部314は、CAポート30を1つ指定して別の予測流量計算スレッドでアクセス予測流量を計算させる処理を全CAポート30について行う。
予測流量計算スレッドは、該当CAポート30のアクセス予測流量を0で初期化する(ステップS71)。そして、予測流量計算スレッドは、該当CAポート30の予測データテーブルが存在するか否かを判定し(ステップS72)、予測データテーブルが存在しない場合には、処理を終了する。
一方、予測データテーブルが存在する場合には、予測流量計算スレッドは、予測データテーブルから対象時間帯のRead転送とWrite転送のデータサイズを取得し、Read転送とWrite転送のデータサイズを該当CAポート30のアクセス予測流量へ加算する(ステップS73)。予測流量計算スレッドは、ステップS73の処理を全サーバ2の予測データテーブルについて行う。
そして、CPUパワー変更部314は、アクセス予測流量に応じて各CAポート30へのCPUパワーの割り当ての設定を変更するCPUパワー調整処理を行う(ステップS81)。
図14は、CPUパワー調整処理のフローを示すフローチャートである。図14に示すように、CPUパワー変更部314は、ステップS91〜ステップS93の処理をCAポート30毎にアクセス予測流量の降順で行う。
すなわち、CPUパワー変更部314は、現在のCPUパワー割り当て設定でアクセス予測流量を処理し切れるか否かを判定する(ステップS91)。そして、CPUパワー変更部314は、アクセス予測流量を処理し切れる場合には、現在のCPUパワー割り当て設定はアクセス予測流量に対し余剰か否かを判定する(ステップS92)。
そして、アクセス予測流量に対し余剰である場合には、CPUパワー変更部314は、余剰分のCPUパワーを未割当状態にする(ステップS93)。そして、CPUパワー変更部314は、ステップS91に戻って次にアクセス予測流量が大きいCAポート30の処理を行う。
そして、全てのCAポート30に対する処理が終了すると、CPUパワー変更部314は、余剰分のCPUパワーを内部制御用に割り当てる(ステップS94)。
一方、ステップS91において、現在のCPUパワー割り当て設定でアクセス予測流量を処理し切れない場合には、CPUパワー変更部314は、別の余剰回収スレッドにより、ステップS101〜ステップS104の処理を行った後、ステップS92へ進む。
余剰回収スレッドは、未割当状態のCPUパワーがあるか否かを判定し(ステップS101)、未割当状態のCPUパワーがある場合には、未割当状態のCPUパワーを該当CAポート30のIO処理用に割り当てる(ステップS102)。
そして、余剰回収スレッドは、降順に選択されている該当のCAポート30よりアクセス予測流量が小さいCAポート30毎に昇順でステップS103〜ステップS104の処理を行う。すなわち、余剰回収スレッドは、更新後のCPUパワー割り当て設定でアクセス予測流量を処理し切れるか否かを判定し(ステップ103)、処理し切れる場合には、処理を終了する。そして、制御はステップS92に移動する。
一方、更新後のCPUパワー割り当て設定でアクセス予測流量を処理し切れない場合には、余剰回収スレッドは、昇順に選択されているCAポート30のCPUパワーの割り当て設定を該当のCAポート30に切り替える(ステップS104)。そして、余剰回収スレッドは、ステップS103に戻る。
また、余剰回収スレッドが、該当のCAポート30よりアクセス予測流量が小さい全CAポート30について処理を終了した場合には、制御はステップS92に移動する。
図15は、IO要求待ちスレッド及びIO要求キュー処理スレッドの処理フローを示すフローチャートである。図15に示すように、IO要求待ちスレッドは、終了指示まで、各CAポート30が受信したIOアクセス要求をCAポート30毎のIO要求キューに登録する(ステップS111)処理を繰り返す。
また、IO要求キュー処理スレッドは、終了指示まで、CPUパワー割り当て設定に応じてCAポート30毎のIO要求キューからIOアクセス要求を取り出し(ステップS121)、取り出したIOアクセス要求を処理する(ステップS122)ことを繰り返す。
このように、CPUパワー変更部314がアクセス予測流量に基づいてCPUパワー割り当ての設定を変更することで、ストレージ装置3は、サーバ2からのIOアクセスの性能をCAポート30間で均等化することができる。
なお、均等化部31の機能は、同様の機能を有する均等化プログラムをCMが有するCPUで実行することによって実現される。そこで、均等化プログラムを実行するCPUを有するCMのハードウェア構成について説明する。図16は、実施例に係る均等化プログラムを実行するCPUを有するCMのハードウェア構成を示す図である。
図16に示すように、CM40は、2つのCAポート30と、CPU40aと、フラッシュメモリ40bと、RAM40cとを有する。CPU40aは、RAM40cに記憶された均等化プログラムを読出して実行する処理装置である。
フラッシュメモリ40bは、均等化プログラムを記憶する不揮発性のメモリである。RAM40cは、フラッシュメモリ40bから読み出された均等化プログラムを記憶する揮発性メモリである。また、RAM40cは、均等化プログラムの実行に必要なデータ、均等化プログラムの実行の途中結果等を記憶する。
また、マルチパスドライバ21の機能は、マルチパスドライバ21をコンピュータで実行することによって実現される。そこで、マルチパスドライバ21を実行するコンピュータのハードウェア構成について説明する。
図17は、実施例に係るマルチパスドライバ21を実行するコンピュータのハードウェア構成を示す図である。図17に示すように、コンピュータ50は、メインメモリ51と、CPU52と、LAN(Local Area Network)インタフェース53と、HDD(Hard Disk Drive)54とを有する。また、コンピュータ50は、スーパーIO(Input Output)55と、DVI(Digital Visual Interface)56と、ODD(Optical Disk Drive)57とを有する。
メインメモリ51は、プログラムやプログラムの実行途中結果などを記憶するメモリである。CPU52は、メインメモリ51からプログラムを読み出して実行する中央処理装置である。CPU52は、メモリコントローラを有するチップセットを含む。
LANインタフェース53は、コンピュータ50をLAN経由で他のコンピュータに接続するためのインタフェースである。HDD54は、プログラムやデータを格納するディスク装置であり、スーパーIO55は、マウスやキーボードなどの入力装置を接続するためのインタフェースである。DVI56は、液晶表示装置を接続するインタフェースであり、ODD57は、DVDの読み書きを行う装置である。
LANインタフェース53は、PCIエクスプレス(PCIe)によりCPU52に接続され、HDD54及びODD57は、SATA(Serial Advanced Technology Attachment)によりCPU52に接続される。スーパーIO55は、LPC(Low Pin Count)によりCPU52に接続される。
そして、コンピュータ50において実行されるマルチパスドライバ21は、コンピュータにより読み出し可能な記録媒体の一例であるDVDに記憶され、ODD57によってDVDから読み出されてコンピュータ50にインストールされる。あるいは、マルチパスドライバ21は、LANインタフェース53を介して接続された他のコンピュータシステムのデータベースなどに記憶され、これらのデータベースから読み出されてコンピュータ50にインストールされる。そして、インストールされたマルチパスドライバ21は、HDD54に記憶され、メインメモリ51に読み出されてCPU52によって実行される。
上述してきたように、実施例では、マルチパスドライバ21の統計部213が、アクセス情報を統計処理して流量データを作成し、予測データ作成部215が、流量データを用いて未来の流量を予測し、予測データを作成する。そして、予測データ送信部217が、通信データに予測データを付与し、IO中継部211が予測データが付与された通信データをストレージ装置3に送信する。
そして、ストレージ装置3の予測データ受信部311が、サーバ2から送信された通信データから予測データを取り出す。そして、処理ステップ変更部313が、複数のサーバ2から送信された予測データを用いて各CAポート30のアクセス予測数を計算し、各CAポート30のアクセス予測数に基づいて、各CAポート30の内部処理の設定を変更する。また、CPUパワー変更部314が、複数のサーバ2から送信された予測データを用いて各CAポート30のアクセス予測流量を計算し、各CAポート30のアクセス予測流量に基づいて、各CAポート30へ割り当てるCPUパワーの設定を変更する。
したがって、情報処理システム1は、複数のサーバ2からのストレージ装置3へのアクセスの性能を均等化することができる。このため、情報処理システム1は、特定のCAポート30のIO性能が低下することを抑えることができ、特定のCAポート30へのアクセス集中によるIOアクセスの再送を抑えることができる。
なお、実施例では、マルチパスドライバ21について説明したが、本発明はこれに限定されるものではなく、シングルパスのドライバにも同様に適用することができる。
1 情報処理システム
2,92 サーバ
3,93 ストレージ装置
20 ユーザアプリ
21,921 マルチパスドライバ
22 HBA
30 CAポート
31 均等化部
32 記憶部
40 CM
40a CPU
40b フラッシュメモリ
40c RAM
50 コンピュータ
51 メインメモリ
52 CPU
53 LANインタフェース
54 HDD
55 スーパーIO
56 DVI
57 ODD
211 IO中継部
212 パス選択部
213 統計部
214 流量データ記憶部
215 予測データ作成部
216 予測データ記憶部
217 予測データ送信部
311 予測データ受信部
312 予測データ記憶部
313 処理ステップ変更部
314 CPUパワー変更部

Claims (6)

  1. 複数の情報処理装置が使用するデータを記憶するストレージ装置において、
    前記情報処理装置との各インタフェースポートのデータ流量に関して各情報処理装置が予測して送信した予測データを受信する受信部と、
    前記受信部が前記複数の情報処理装置から受信した予測データに基づいて各インタフェースポートのアクセス予測値を計算し、計算したアクセス予測値に基づいて各インタフェースポートの処理に関する設定を変更する変更部と
    を有することを特徴とするストレージ装置。
  2. 前記変更部は、前記受信部が前記複数の情報処理装置から受信した予測データに基づいて各インタフェースポートのアクセス予測数を計算し、計算したアクセス予測数に基づいて、各インタフェースポートの処理を多い処理にするか少ない処理にするかの設定を変更することを特徴とする請求項1に記載のストレージ装置。
  3. 前記変更部は、前記受信部が前記複数の情報処理装置から受信した予測データに基づいて各インタフェースポートのアクセス予測流量を計算し、計算したアクセス予測流量に基づいて、各インタフェースポートに演算処理装置を割り当てる割合の設定を変更することを特徴とする請求項1に記載のストレージ装置。
  4. 当該ストレージ装置は、当該ストレージ装置を制御する制御装置を2つ有し、
    各制御装置はインタフェースポートを有し、データを記憶する記憶部を一方の制御装置が担当し、
    前記変更部は、担当の制御装置を別の制御装置に変更することで各インタフェースポートの処理を多い処理にするか少ない処理にするかの設定を変更することを特徴とする請求項2に記載のストレージ装置。
  5. データを記憶する装置として使用するストレージ装置のインタフェースポート毎に読み書きに関するデータの量を流量データとして収集する収集部と、
    前記収集部により収集された流量データに基づいて前記インタフェースポート毎に読み書きに関するデータの量を予測して予測データを作成する予測部と、
    前記予測部により作成された予測データを複数の情報処理装置から収集して各インタフェースポートの処理に関する設定を変更する前記ストレージ装置に該予測データを送信する送信部と
    を有することを特徴とする情報処理装置。
  6. コンピュータに、
    データを記憶する装置として使用するストレージ装置のインタフェースポート毎に読み書きに関するデータの量を流量データとして収集し、
    収集した流量データに基づいて前記インタフェースポート毎に読み書きに関するデータの量を予測して予測データを作成し、
    作成した予測データを複数の情報処理装置から収集して各インタフェースポートの処理に関する設定を変更する前記ストレージ装置に該予測データを送信する
    処理を実行させることを特徴とするドライバプログラム。
JP2017066076A 2017-03-29 2017-03-29 ストレージ装置、情報処理装置及びドライバプログラム Active JP6816607B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2017066076A JP6816607B2 (ja) 2017-03-29 2017-03-29 ストレージ装置、情報処理装置及びドライバプログラム
US15/903,081 US10459637B2 (en) 2017-03-29 2018-02-23 Storage device and information processor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017066076A JP6816607B2 (ja) 2017-03-29 2017-03-29 ストレージ装置、情報処理装置及びドライバプログラム

Publications (2)

Publication Number Publication Date
JP2018169767A JP2018169767A (ja) 2018-11-01
JP6816607B2 true JP6816607B2 (ja) 2021-01-20

Family

ID=63669454

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017066076A Active JP6816607B2 (ja) 2017-03-29 2017-03-29 ストレージ装置、情報処理装置及びドライバプログラム

Country Status (2)

Country Link
US (1) US10459637B2 (ja)
JP (1) JP6816607B2 (ja)

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09218858A (ja) 1996-02-14 1997-08-19 Hitachi Ltd 分散型データベース管理システム
US6977895B1 (en) * 2000-03-23 2005-12-20 Cisco Technology, Inc. Apparatus and method for rate-based polling of input interface queues in networking devices
JP2002132549A (ja) * 2000-10-23 2002-05-10 Hitachi Ltd 論理ボリューム管理方法、これを利用したサービスおよびそのサービスを記録したコンピュータ読み取り可能な記録媒体
US7564810B2 (en) * 2002-05-08 2009-07-21 Microsoft Corporation Method and system for managing power consumption of a network interface module in a wireless computing device
JP2007249468A (ja) 2006-03-15 2007-09-27 Hitachi Ltd Cpu割当方法、cpu割当プログラム、cpu割当装置、および、データベース管理システム
JP4872402B2 (ja) 2006-03-20 2012-02-08 日本電気株式会社 マルチプロセッサシステムのメモリアクセス負荷分散装置および方法
KR20150096853A (ko) * 2014-02-17 2015-08-26 한국전자통신연구원 다중 인터페이스를 이용한 부하분산 방법 및 장치
US9603146B1 (en) * 2015-06-01 2017-03-21 Sprint Spectrum L.P. Dynamic management of data buffering for wireless communication

Also Published As

Publication number Publication date
US20180284983A1 (en) 2018-10-04
US10459637B2 (en) 2019-10-29
JP2018169767A (ja) 2018-11-01

Similar Documents

Publication Publication Date Title
US10778765B2 (en) Bid/ask protocol in scale-out NVMe storage
US8365023B2 (en) Runtime dynamic performance skew elimination
JP6447329B2 (ja) 並列計算制御装置、並列計算システムおよびマイグレーション時間推定プログラム
US20080059602A1 (en) Load balancing method for data I/O paths between groups in which multi-path management is employed
JP4654273B2 (ja) ストレージ装置および制御装置
US7950013B2 (en) System for monitoring time proportion for interrupt or task processing with restriction placed in subsequent monitoring time period when allowable time proportion is exceed
JP6179321B2 (ja) ストレージ管理装置、制御方法及び制御プログラム
JP2008112293A (ja) 管理計算機及び電源制御方法並びに計算機システム
WO2016103471A1 (ja) 計算機システムおよび管理プログラム
CN102334092A (zh) 存储系统及其控制方法以及程序
JP2019095971A (ja) ストレージシステム、ストレージ制御装置およびプログラム
US8769195B2 (en) Storage apparatus and storage apparatus control method
US9164885B2 (en) Storage control device, storage control method, and recording medium
JP6816607B2 (ja) ストレージ装置、情報処理装置及びドライバプログラム
JP6019940B2 (ja) 情報処理装置、コピー制御プログラム、およびコピー制御方法
US20160274793A1 (en) Storage apparatus, storage control method, and computer-readable recording medium for recording storage control program
JP6681369B2 (ja) 性能管理システム、管理装置および性能管理方法
WO2017098591A1 (ja) 計算機及びストレージ装置を有するシステム、及びシステムの制御方法
CN112948207A (zh) 信息传递方法、装置、电子设备和介质
JP2018041282A (ja) ストレージ管理装置、性能調整方法及び性能調整プログラム
WO2015052823A1 (ja) クラウド管理装置、その管理方法、およびそのシステム
Niu et al. SMR drive performance analysis under different workload environments
US20220365728A1 (en) Method and system for maximizing performance of a storage system
US20190260643A1 (en) Information processing apparatus and information processing method
JP6773755B2 (ja) ストレージ装置及びストレージ装置における構成管理リクエストの処理方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200115

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20201027

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20201124

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20201207

R150 Certificate of patent or registration of utility model

Ref document number: 6816607

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150