ConcurrentReal-Time-Logo

リアルタイムテクニカルドキュメント KVM-RT編 最終更新 2024.02.05

外部リンクを除く、以下のドキュメントの著作権は、特に記載の無い限りConcurrent Real-Time社に帰属します。
下記ドキュメントの弊社を除く営利目的の利用は禁じますが、ウィキペディアからの参照や社内教育、
大学等の非営利の目的であれば、ご自身の責任において自由に利用して頂いてかまいません。
ドキュメントの内容は予告無く変更する事がありますが、出来る限りリンクが消滅しないように保存しています。
ここに、記載した商品名は、一般に各社の商標または登録商標です。
外部リンク先の著作権は、各サイトの著作権表示をご覧ください。弊社著作権についてのポリシーは、 [hand.right] こちらをご覧ください。


RedHawk KVM-RTは、Concurrent Real-Timeによって開発されたTYPE-1 ハイパーバイザーであり、実績のあるカーネルベースの仮想マシン(KVM)オープンソーステクノロジーをRedHawkLinuxリアルタイムオペレーティングシステムと統合します。ConcurrentのKVM-RT構成ツールを使用すると、RedHawk Linuxのリアルタイム機能を単一の物理ホストシステムで実行されているVMに拡張する仮想マシン(VM)を簡単に作成できます。

RedHawkは、Intelx86およびARM64プラットフォーム向けのオープンソースLinuxオペレーティングシステムのConcurrentReal-Timeに特化したリアルタイムバージョンです。KVM-RT構成ツールは、RedHawk Linuxホストの独自の機能を活用して、メモリ管理、プロセススケジューリング、デバイスアクセス、およびI/Oを実現します。リアルタイムのパフォーマンスは、RedHawkLinuxのシールドおよびスケジューリングメカニズムによって保証されています。

リアルタイムのRedHawkLinuxディストリビューションにRedHawk KVM-RTを実装すると、KVMの機能が拡張され、仮想マシンでのリアルタイムパフォーマンスが保証されます。また、複数のリアルタイムゲストと非リアルタイムゲストのサポートも提供します。RedHawk KVM-RTは、認定されたハードウェアプラットフォームで20マイクロ秒未満の最悪の場合の最大応答時間を達成できます。

KVM-RT 1.5 ベンチマーク試験例
ホスト
ノード 0 でのストレス テスト
ノード 0 で Heaven GPU ベンチマークを実行している Windows 11 VM
完全にシールドされたノード 3 の 1 つの CPU で実行される Cyclictest

RT VM (RT 仮想マシン)
RedHawk 7.5.14 VM (ノード 1)
RedHawk 9.2.1 VM (ノード 2)
テスト (各 RT VM)
単一のシールドコアでcyclictestを実行
他のすべてのコアへの負荷がかかる
3つのCUDAデモ(nbody、oceanFFT、randomFog)
Heaven GPUベンチマーク

Host max PDL: 9us
RedHawk 7.5.14 VM max PDL: 17us
RedHawk 9.2.1 VM max PDL: 19us

Duration 16.5 hours

KVM-RT 1.4 ベンチマーク試験例
 
Maximum VM PDL(μ秒) KVM-RT 1.4(Duration: 46 hours) VMware ESXi 8(Duration: 19 hours)
RedHawk 6.5 6 953
RedHawk 7.5 7 3371
RedHawk 8.4 17 2724


[hand.right] 資料: KVM-RT 1.5 Release Notes

   KVM-RT Version 1.5 Release Notes(PDF)

[hand.right] 資料: KVM-RT 1.4 Release Notes

   KVM-RT Version 1.4 Release Notes(PDF)

[hand.right] 資料: KVM-RT 1.4 Users Guide

   KVM-RT Version 1.4 Users Guide(PDF)

[hand.right] 資料: KVM-RT 1.3 Release Notes

   KVM-RT Version 1.3 Release Notes(PDF)

[hand.right] 資料: KVM-RT 1.3 Users Guide

   KVM-RT Version 1.3 Users Guide(PDF)

[hand.right] 資料: KVM-RT 1.2 Release Notes

   KVM-RT Version 1.2 Release Notes(PDF)

[hand.right] 資料: KVM-RT 1.2 Users Guide

   KVM-RT Version 1.2 Users Guide(PDF)


[hand.right] KVM-RT上でゲストOS個別のIP アドレスを持つようにする方法について(2023.03.10)
ゲストが外部ネットワーク上で個別のIP アドレスを持つようにするには、ホスト上の物理ネットワーク インターフェイスを共有するようにネットワークブリッジを構成する必要があります。

ネットワークブリッジは、NetworkManagerコマンドラインインターフェイスツール(nmcli)を使用して作成できます。
現在のネットワーク接続のリストは、次のように表示できます。

# nmcli connection show
NAME    UUID                                  TYPE      DEVICE 
eth0    3002a73e-cdb5-4b9f-9fcb-1224e135779b  ethernet  eth0   
virbr0  932d006c-c49e-4e3d-a9fc-3dc22f5156f6  bridge    virbr0 

上記の出力では、ホストにeth0というNAMEのデバイスを介して確立されたイーサネットネットワーク接続があり、 virbr0というNAMEのデフォルトのブリッジインターフェイスが、KVM-RTゲストシステムがdefaultで接続されているNATベースの仮想ネットワークへのアクセスを提供していることがわかります。
virshコマンドを使用して、システムに現在構成されている仮想ネットワークを一覧表示することもできます。

# virsh net-list --all
 名前      状態     自動起動     永続
---------------------------------------------
 default   動作中   はい (yes)   はい (yes)

(1) ネットワーク構成に新しい接続を追加する。

# nmcli con add ifname br0 type bridge con-name br0
接続 'br0' (16165e87-0cd1-45c4-ad53-62024c5a4fae) が正常に追加されました。

接続が追加されたら、次のように、物理デバイスeth0(スレーブ)とブリッジ接続br0(マスター)の間にブリッジスレーブインターフェイスを確立します。

# nmcli con add type bridge-slave ifname eth0 master br0
接続 'bridge-slave-eth0' (3785d32d-692b-4687-affd-c20afc60dbf3) が正常に追加されました。

この時点で、NetworkManager接続リストは次のようになります。

# nmcli connection show
NAME               UUID                                  TYPE      DEVICE 
br0                15d881a2-9ea4-4134-875f-84b32bed888c  bridge    br0    
bridge-slave-eth0  c86598fc-7043-4e75-90fc-d7baeb9ecd5b  ethernet  eth0   
virbr0             932d006c-c49e-4e3d-a9fc-3dc22f5156f6  bridge    virbr0 

(2) ブリッジインターフェイスを起動する

# nmcli connection down eth0
接続 'eth0' が正常に非アクティブ化されました (D-Bus アクティブパス: /org/freedesktop/NetworkManager/ActiveConnection/1)
# nmcli connection up br0
接続が正常にアクティベートされました (master waiting for slaves) (D-Bus アクティブパス: /org/freedesktop/NetworkManager/ActiveConnection/13)

ブリッジが稼働すると、接続リストにブリッジ接続とブリッジスレーブ接続の両方が含まれるようになります。

# nmcli connection show --active
NAME               UUID                                  TYPE      DEVICE 
br0                15d881a2-9ea4-4134-875f-84b32bed888c  bridge    br0    
bridge-slave-eth0  c86598fc-7043-4e75-90fc-d7baeb9ecd5b  ethernet  eth0   
virbr0             932d006c-c49e-4e3d-a9fc-3dc22f5156f6  bridge    virbr0 

(3) KVM-RTブリッジネットワークの作成
この時点で、ブリッジ接続はシステムに存在しますが、KVM-RT 環境には表示されません。
virshコマンドを実行すると、デフォルトネットワークが唯一の利用可能なネットワークオプションとしてリストされます。

# virsh net-list --all
 名前      状態     自動起動     永続
---------------------------------------------
 default   動作中   はい (yes)   はい (yes)

ブリッジを仮想マシンで使用する前に、ブリッジを宣言してKVM-RT ネットワーク構成に追加する必要があります。
まず、 bridge.xmlという名前のブリッジネットワークの定義ファイルを作成します。
# vi bridge.xml 
  <network>
  <name>br0</name>
  <forward mode="bridge"/>
  <bridge name="br0" />
  </network>
次に、ファイルを使用して新しいネットワークを定義します。

# virsh net-define bridge.xml
ネットワーク br0 が bridge.xml から定義されました

(4) ネットワークを定義したら、ネットワークを起動し、必要に応じて、システムが再起動するたびに自動起動するようにネットワークを構成します。

# virsh net-start br0
ネットワーク br0 が起動されました

# virsh net-autostart br0
ネットワーク br0 が自動起動に設定されました

もう一度ネットワークを一覧表示して、KVM-RT 環境内でブリッジネットワークにアクセスできるようになったことを確認します。

# virsh net-list --all
 名前      状態     自動起動     永続
---------------------------------------------
 br0       動作中   はい (yes)   はい (yes)
 default   動作中   はい (yes)   はい (yes)

(5) ブリッジを使用するように既存の仮想マシンを変更するには、virsh editコマンドを使用します。

# virsh edit ゲストOS名
デフォルトの仮想ネットワークから変更するには、ファイルの セクションを次のように見つけます。
source bridge プロパティをdefaultからbr0に変更し、ファイルを保存します。

# virsh edit RedHawk8.4

    <interface type='bridge'>
      <mac address='52:54:00:a4:a4:63'/>
      <source bridge='default'/>
      <model type='virtio'/>
      <address type='pci' domain='0x0000' bus='0x01' slot='0x00' function='0x0'/>
    </interface>

    <interface type='bridge'>
      <mac address='52:54:00:a4:a4:63'/>
      <source bridge='br0'/>
      <model type='virtio'/>
      <address type='pci' domain='0x0000' bus='0x01' slot='0x00' function='0x0'/>
    </interface>

(6) 仮想マシンを再起動するまで変更は有効になりません。

[hand.right] PCIパススルーする場合の注意事項について(2023.03.10)

(1) VT-d 仕様では、PCIe-to PCI/PCI-X ブリッジまたは従来の PCI ブリッジの背後にあるすべての従来の PCI デバイスは、同じゲストにまとめてのみ割り当てることができると規定しています。
(PCIe デバイスにはこの制限はありません。)
デバイスが MSI をサポートしておらず、他のデバイスと IRQ を(物理的に)共有している場合、割り当てられたデバイスのホストIRQでは、共有がサポートされていないため、割り当てることができません
下記は、ホスト側で見たPCIカードデバイスの情報です。

ホスト側
# lspci -s 0000:03:0c.0 -vvv
03:0c.0 Unassigned class [ff00]: Interface Corp Device 0b61 (rev 02)
      Subsystem: Interface Corp Device 2cd8
      Control: I/O- Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
      Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=slow >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
      Interrupt: pin A routed to IRQ 16
      NUMA node: 0
      IOMMU group: 24
      Region 0: Memory at a0200000 (32-bit, non-prefetchable) [size=32]
      Kernel driver in use: vfio-pci

この状態でKVM-RTを起動すると、下記のようなエラーが発生します。

# kvmrt-boot
NUMA node memory shielding is not supported or configured on this system.
error: Failed to start domain 'RedHawk8'
error: Internal error: qemu unexpectedly closed the monitor: 2023-03-03T02:34:32.782025Z qemu-kvm: -device vfio-pci,host=0000:03:0c.0,id=hostdev0,bus=pci.9,addr=0x1: vfio 0000:03:0c.0: Failed to set up TRIGGER eventfd signaling for interrupt INTX-0: VFIO_DEVICE_SET_IRQS failure: Device or resource busy
Error: VM "rocky8" failed to boot.

これは、下記の様にIRQ 16が共有されている事が原因です。

# lspci -vvv
:
00:1f.4 SMBus: Intel Corporation C620 Series Chipset Family SMBus (rev 09)
        Subsystem: Dell Device 0739
        Control: I/O+ Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
        Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
        Interrupt: pin A routed to IRQ 16
        NUMA node: 0
        IOMMU group: 21
        Region 0: Memory at 380000000000 (64-bit, non-prefetchable) [size=256]
        Region 4: I/O ports at 0780 [size=32]
        Kernel driver in use: i801_smbus
        Kernel modules: i2c_i801
:

IRQ16を利用中かどうかは、下記の様に/proc/interruptsで確認することも出来ます。

# cat /proc/interrupts
            CPU0       CPU1       CPU2       CPU3      
   0:         22          0          0          0  IR-IO-APIC    2-edge      timer
   8:          0          1          0          0  IR-IO-APIC    8-edge      rtc0
   9:          0          0          0          0  IR-IO-APIC    9-fasteoi   acpi
  16:          0          0          0          0  IR-IO-APIC   16-fasteoi   i801_smbus
  29:          0          0     105603          0  IR-PCI-MSI 376832-edge    ahci[0000:00:17.0]
       :

別のスロット位置に変更したところ以下の様に、問題は解決しました。

ホスト側

    # lspci -s b4:0c.0  -vvv
    b4:0c.0 Unassigned class [ff00]: Interface Corp Device 0b61 (rev 02)
          Subsystem: Interface Corp Device 2cd8
          Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
          Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=slow >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
          Interrupt: pin A routed to IRQ 11
          NUMA node: 0
          IOMMU group: 84
          Region 0: Memory at fbe00000 (32-bit, non-prefetchable) [disabled] [size=32]
          Kernel driver in use: vfio-pci

    # cat /proc/interrupts(ホスト側にIRQ11を利用しているデバイスは無い)
                CPU0       CPU1       CPU2       CPU3      
       0:         23          0          0          0  IR-IO-APIC    2-edge      timer
       8:          0          0          0          1  IR-IO-APIC    8-edge      rtc0
       9:          0          0          0          0  IR-IO-APIC    9-fasteoi   acpi
      16:          0          0          0          0  IR-IO-APIC   16-fasteoi   i801_smbus
      30:          0      55184          0          0  IR-PCI-MSI 376832-edge      ahci[0000:00:17.0]
      31:          0          0       1714          0  IR-PCI-MSI 327680-edge      xhci_hcd
      32:          0        293          0          0  IR-PCI-MSI 520192-edge      enp0s31f6
      35:          0          0          2          0  IR-PCI-MSI 65536-edge      ioat-msix
      37:          0          0          0          2  IR-PCI-MSI 67584-edge      ioat-msix
      38:          0          2          0          0  IR-PCI-MSI 69632-edge      ioat-msix
      39:          0          0          2          0  IR-PCI-MSI 71680-edge      ioat-msix
      40:          0          0          0          2  IR-PCI-MSI 73728-edge      ioat-msix
      41:          0          2          0          0  IR-PCI-MSI 75776-edge      ioat-msix
      42:          0          0          2          0  IR-PCI-MSI 77824-edge      ioat-msix
      43:          0          0          0          2  IR-PCI-MSI 79872-edge      ioat-msix
      44:         62          0          0          0  IR-PCI-MSI 360448-edge      mei_me
      45:          0          0        288          0  IR-PCI-MSI 514048-edge      snd_hda_intel:card0
      46:          0          0          0        299  IR-IO-APIC    4-fasteoi   snd_hda_intel:card1
      47:       6702          0          0          0  IR-PCI-MSI 12058624-edge      nvidia
      56:          0          0          0          0  DMAR-MSI    2-edge      dmar2
      57:          0          0          0          0  DMAR-MSI    1-edge      dmar1
      58:          0          0          0          0  DMAR-MSI    0-edge      dmar0
      59:          0          0          0          0  DMAR-MSI    3-edge      dmar3
     NMI:          0          0          0          0   Non-maskable interrupts
     NMD:          0          0          0          0   Duration in usecs of most recent NMI
     LOC:      69069      58010     551652      49761   Local timer interrupts
     SPU:          0          0          0          0   Spurious interrupts
     PMI:          0          0          0          0   Performance monitoring interrupts
     IWI:          0          0          0          0   IRQ work interrupts
     RTR:          0          0          0          0   APIC ICR read retries
     RES:       5301       2607       3167       3238   Rescheduling interrupts
     FBS:          0          0          0          0   FBS cross cpu interrupts
     CAL:       5052      25807      22664      25595   Function call interrupts
     TLB:       1881       1930       1397       3367   TLB shootdowns
     MOV:          0          0          0          0   IRQ-move cleanup interrupts
     TRM:          0          0          0          0   Thermal event interrupts
     THR:          0          0          0          0   Threshold APIC interrupts
     DFR:          0          0          0          0   Deferred Error APIC interrupts
     MCE:          0          0          0          0   Machine check exceptions
     MCP:          1          2          2          2   Machine check polls
     RTE:          0          0          0          0   RT throttling events
     ERR:          0
     MIS:          0
     PIN:          0          0          0          0   Posted-interrupt notification event
     NPI:          0          0          0          0   Nested posted-interrupt event
     PIW:          0          0          0          0   Posted-interrupt wakeup event

ゲスト側

    # lspci -s 08:01.0 -vvv
    08:01.0 Unassigned class [ff00]: Interface Corp Device 0b61 (rev 02)
        Subsystem: Interface Corp Device 2cd8
        Physical Slot: 1
        Control: I/O- Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
        Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=slow >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
        Interrupt: pin A routed to IRQ 23
        Region 0: Memory at fc000000 (32-bit, non-prefetchable) [size=32]
    # cat /proc/interrupts
               CPU0       CPU1       
      1:          0       2406   IO-APIC   1-edge      i8042
      8:          0          0   IO-APIC   8-edge      rtc0
      9:          0          0   IO-APIC   9-fasteoi   acpi
     12:        144          0   IO-APIC  12-edge      i8042
     16:          0          0   IO-APIC  16-fasteoi   i801_smbus
     21:          0       1044   IO-APIC  21-fasteoi   qxl
     22:          0          5   IO-APIC  22-fasteoi   virtio4, virtio3
     23:        490          0   IO-APIC  23-fasteoi   extmem
     24:          0          0   PCI-MSI 32768-edge      aerdrv
           :

(2) 下記、Interface社PEXH224020等、一部のPCIカードでは、1枚のカードで2つのバスブリッジを持っている場合があります。

ホスト側(通常の場合)

# lspci -d 1147:08c0 -vv
23:0c.0 Unassigned class [ff00]: Interface Corp Device 08c0 (rev 01)
	Subsystem: Interface Corp Device 2d14
	Control: I/O- Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=slow >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Interrupt: pin A routed to IRQ 27
	Region 0: Memory at dfffe000 (32-bit, non-prefetchable) [size=32]

23:0c.1 Unassigned class [ff00]: Interface Corp Device 08c0 (rev 01)
	Subsystem: Interface Corp Device 2d94
	Control: I/O- Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=slow >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Interrupt: pin B routed to IRQ 28
	Region 0: Memory at dffff000 (32-bit, non-prefetchable) [size=32]


これらのカードをKVM-RTに対してPCIパススルーを行った場合、ゲストOS側の起動時に pci=routeirq を付与しないと、IRQがゲストOSに到達しない場合があります。

ホスト側(PCIパススルーを行った場合)

# lspci -d 1147:08c0 -vvv
67:0c.0 Unassigned class [ff00]: Interface Corp Device 08c0 (rev 01)
	Subsystem: Interface Corp Device 2d14
	Control: I/O- Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=slow >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Interrupt: pin A routed to IRQ 94
	NUMA node: 0
	IOMMU group: 91
	Region 0: Memory at e0e01000 (32-bit, non-prefetchable) [size=32]
	Kernel driver in use: vfio-pci

67:0c.1 Unassigned class [ff00]: Interface Corp Device 08c0 (rev 01)
	Subsystem: Interface Corp Device 2d94
	Control: I/O- Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=slow >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Interrupt: pin B routed to IRQ 95
	NUMA node: 0
	IOMMU group: 91
	Region 0: Memory at e0e00000 (32-bit, non-prefetchable) [size=32]
	Kernel driver in use: vfio-pci


ゲスト側側(PCIパススルーを行った場合)
(ボードが2つに分割されて見える)

# lspci -d 1147:08c0 -vvv
0a:01.0 Unassigned class [ff00]: Interface Corp Device 08c0 (rev 01)
	Subsystem: Interface Corp Device 2d14
	Physical Slot: 1
	Control: I/O- Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=slow >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Interrupt: pin A routed to IRQ 20
	Region 0: Memory at fa808000 (32-bit, non-prefetchable) [size=32]

0a:02.0 Unassigned class [ff00]: Interface Corp Device 08c0 (rev 01)
	Subsystem: Interface Corp Device 2d94
	Physical Slot: 2
	Control: I/O- Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=slow >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Interrupt: pin B routed to IRQ 22
	Region 0: Memory at fa809000 (32-bit, non-prefetchable) [size=32]


# cat /proc/interrupts
           CPU0       CPU1       CPU2       CPU3             
  0:         19          0          0          0         IO-APIC-edge      timer
  1:        200          0          0          0         IO-APIC-edge      i8042
  8:          0          0          0          0         IO-APIC-edge      rtc0
  9:          0          0          0          0         IO-APIC-fasteoi   acpi
 12:        134          0          0          0         IO-APIC-edge      i8042
 16:          0          0          0          0         IO-APIC-fasteoi   i801_smbus
 20:          0          0          0          0         IO-APIC-fasteoi   extmem
 21:       1030          0          0          0         IO-APIC-fasteoi   qxl
 22:          0          0          0          0         IO-APIC-fasteoi   extmem
     :

# lsirq
16	00:1f.3 Intel Corporation 82801I (ICH9 Family) SMBus Controller (rev 02)
20	0a:01.0 Interface Corp Unknown device (rev 01)
21	00:01.0 Red Hat, Inc. QXL paravirtual graphic card (rev 04)
22	0a:02.0 Interface Corp Unknown device (rev 01)
:



[hand.right] Nvidie製品をVGAパススルーする場合の注意事項について(2022.05.19)
VGAパススルーを利用して、
ホストOS側でオンボードVGAなどNvidiaではないグラフィックカードを
ゲストOS側でNvidiaグラフィックカードグラフィックカードを
構成する場合の注意事項について以下に示します。



[hand.right] バグ等

[back]Back