Category Archives: Linux

lvm2 on RAID1の構築方法。

Linuxにおける、lvm2 on RAID1の構築方法。
忘れてしまうので、メモしておきます。

●ディスク追加(20120723)

/dev/sda  既存の1台目  2000.3 GB
/dev/sdb  既存の2台目  2000.3 GB

/dev/sdc  今回追加1台目  2000.3 GB
/dev/sdd  今回追加2台目  2000.3 GB



1)ディスクの現状確認
# fdisk -l /dev/sda
-----
Disk /dev/sda: 2000.3 GB, 2000398934016 bytes
255 heads, 63 sectors/track, 243201 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *          64          79      128520   fd  Linux raid autodetect
/dev/sda2              80        6159    48837600   fd  Linux raid autodetect
/dev/sda3            6160      243201  1904039865   fd  Linux raid autodetect
-----


# fdisk -l /dev/sdb
-----
Disk /dev/sdb: 2000.3 GB, 2000398934016 bytes
255 heads, 63 sectors/track, 243201 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1   *          64          79      128520   fd  Linux raid autodetect
/dev/sdb2              80        6159    48837600   fd  Linux raid autodetect
/dev/sdb3            6160      243201  1904039865   fd  Linux raid autodetect
-----

※参考まで。



2)fdiskでスライス。
下記のように、fdisk でスライス。
4096バイトセクタを考慮にいれ、スタートを64とする。
id は fd 。


# fdisk -l /dev/sdc
-----
Disk /dev/sdc: 2000.3 GB, 2000398934016 bytes
255 heads, 63 sectors/track, 243201 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sdc1              64      243201  1953005985   fd  Linux raid autodetect
-----


# fdisk -l /dev/sdd
-----
Disk /dev/sdd: 2000.3 GB, 2000398934016 bytes
255 heads, 63 sectors/track, 243201 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sdd1              64      243201  1953005985   fd  Linux raid autodetect
-----



3)RAID1を追加
# mdadm --create /dev/md3 --level=raid1 --raid-devices=2 /dev/sdc1 /dev/sdd1
-----
mdadm: array /dev/md3 started.
-----


# mdadm --detail /dev/md3
-----
/dev/md3:
        Version : 0.90
  Creation Time : Mon Jul 23 13:45:36 2012
     Raid Level : raid1
     Array Size : 1953005888 (1862.53 GiB 1999.88 GB)
  Used Dev Size : 1953005888 (1862.53 GiB 1999.88 GB)
   Raid Devices : 2
  Total Devices : 2
Preferred Minor : 3
    Persistence : Superblock is persistent

    Update Time : Mon Jul 23 13:47:55 2012
          State : active, resyncing
 Active Devices : 2
Working Devices : 2
 Failed Devices : 0
  Spare Devices : 0

 Rebuild Status : 1% complete

           UUID : XXXX
         Events : 0.2

    Number   Major   Minor   RaidDevice State
       0       8       33        0      active sync   /dev/sdc1
       1       8       49        1      active sync   /dev/sdd1
-----


# cat /proc/mdstat
-----
Personalities : [raid1]
md3 : active raid1 sdd1[1] sdc1[0]
      1953005888 blocks [2/2] [UU]
      [>....................]  resync =  0.1% (2493440/1953005888) finish=208.6min speed=155840K/sec

md0 : active raid1 sda1[1] sdb1[0]
      128448 blocks [2/2] [UU]

md1 : active raid1 sda2[1] sdb2[0]
      48837504 blocks [2/2] [UU]

md2 : active raid1 sda3[1] sdb3[0]
      1904039744 blocks [2/2] [UU]

unused devices: 
-----



4)mdadm.confに追記
# cd /etc
# cat mdadm.conf
-----
# mdadm.conf written out by anaconda
DEVICE partitions
MAILADDR root
ARRAY /dev/md0 level=raid1 num-devices=2 uuid=XXXX
ARRAY /dev/md1 level=raid1 num-devices=2 uuid=XXXX
ARRAY /dev/md2 level=raid1 num-devices=2 uuid=XXXX
-----


# cp mdadm.conf mdadm.conf-12072301
# mdadm --detail --scan
-----
ARRAY /dev/md2 level=raid1 num-devices=2 metadata=0.90 UUID=XXXX
ARRAY /dev/md1 level=raid1 num-devices=2 metadata=0.90 UUID=XXXX
ARRAY /dev/md0 level=raid1 num-devices=2 metadata=0.90 UUID=XXXX
ARRAY /dev/md3 level=raid1 num-devices=2 metadata=0.90 UUID=XXXX
-----


# mdadm --detail --scan >> mdadm.conf
# vi mdadm.conf
-----
# mdadm.conf written out by anaconda
DEVICE partitions
MAILADDR root
ARRAY /dev/md0 level=raid1 num-devices=2 uuid=XXXX
ARRAY /dev/md1 level=raid1 num-devices=2 uuid=XXXX
ARRAY /dev/md2 level=raid1 num-devices=2 uuid=XXXX
ARRAY /dev/md3 level=raid1 num-devices=2 uuid=XXXX
-----



5)lvm2を使うのでこちらも追加
・kvm2 ボリューム作成

# pvcreate /dev/md3
  Writing physical volume data to disk "/dev/md3"
  Physical volume "/dev/md3" successfully created


# vgcreate -s 32m VolGroup01-kvm2 /dev/md3
  Volume group "VolGroup01-kvm2" successfully created


# lvcreate -n LogVol00 -l 100%FREE VolGroup01-kvm2
  Logical volume "LogVol00" created


・できたか確認
# lvdisplay
  --- Logical volume ---
  LV Name                /dev/VolGroup01-kvm2/LogVol00
  VG Name                VolGroup01-kvm2
  LV UUID                XXXX
  LV Write Access        read/write
  LV Status              available
  # open                 0
  LV Size                1.82 TB
  Current LE             59601
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:1

  --- Logical volume ---
  LV Name                /dev/VolGroup00/LogVol00
  VG Name                VolGroup00
  LV UUID                XXXX
  LV Write Access        read/write
  LV Status              available
  # open                 1
  LV Size                1.77 TB
  Current LE             58106
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:0



6)ext3でfsを構築
# mkfs.ext3 /dev/mapper/VolGroup01--kvm2-LogVol00
-----
mke2fs 1.39 (29-May-2006)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
244137984 inodes, 488251392 blocks
24412569 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=4294967296
14901 block groups
32768 blocks per group, 32768 fragments per group
16384 inodes per group
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
        4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
        102400000, 214990848

Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 28 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.
-----


7)仮マウント
# mount -t ext3 /dev/mapper/VolGroup01--kvm2-LogVol00 /kvm2


# df -k -T
Filesystem    Type   1K-blocks      Used Available Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
              ext3   1844389860 190922896 1558266096  11% /
/dev/md0      ext3      124387     47709     70256  41% /boot
tmpfs        tmpfs    16465284         0  16465284   0% /dev/shm
/dev/mapper/VolGroup01--kvm2-LogVol00
              ext3   1922360144    200164 1824509704   1% /kvm2



8)起動時に自動マウント
# cat /etc/fstab
-----
/dev/VolGroup00/LogVol00 /                       ext3    defaults        1 1
/dev/md0                /boot                   ext3    defaults        1 2
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0
/dev/md1                swap                    swap    defaults        0 0
/dev/VolGroup01-kvm2/LogVol00   /kvm2           ext3    defaults        0 0
-----

※/dev/VolGroup01-kvm2/LogVol00 を追加


・マウント確認
# df -k -T
Filesystem    Type   1K-blocks      Used Available Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
              ext3   1844389860 190922896 1558266096  11% /
/dev/md0      ext3      124387     47709     70256  41% /boot
tmpfs        tmpfs    16465284         0  16465284   0% /dev/shm



# mount -a



# df -k -T
Filesystem    Type   1K-blocks      Used Available Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
              ext3   1844389860 190922896 1558266096  11% /
/dev/md0      ext3      124387     47709     70256  41% /boot
tmpfs        tmpfs    16465284         0  16465284   0% /dev/shm
/dev/mapper/VolGroup01--kvm2-LogVol00
              ext3   1922360144    200164 1824509704   1% /kvm2



あとは、リブートしてみて、マウントされていればOK。
RAID1の再構築をひたすら待つ。

完了。

BUG: soft lockup - CPU#0 stuck for XXXs! [ksoftirqd/0:4]

BlueOnyx-5108r で運用中のサーバが7月に入って急に下記ログを吐くようになった。
OSがCentOS 6.2ベースなので、共通項目かも。

[root@XXXXXXXX /]# tail -1000000 /var/log/messages|grep BUG
Jul 1 09:04:39 XXXXXXXX kernel: BUG: soft lockup - CPU#0 stuck for 247s! [ksoftirqd/0:4]
Jul 1 09:07:38 XXXXXXXX kernel: BUG: soft lockup - CPU#0 stuck for 148s! [ksoftirqd/0:4]
Jul 1 09:15:02 XXXXXXXX kernel: BUG: soft lockup - CPU#0 stuck for 86s! [ksoftirqd/0:4]
Jul 1 09:20:27 XXXXXXXX kernel: BUG: soft lockup - CPU#0 stuck for 119s! [ksoftirqd/0:4]
Jul 1 09:21:10 XXXXXXXX kernel: BUG: soft lockup - CPU#0 stuck for 183s! [ksoftirqd/0:4]
Jul 1 09:25:04 XXXXXXXX kernel: BUG: soft lockup - CPU#0 stuck for 85s! [ksoftirqd/0:4]
Jul 1 09:27:09 XXXXXXXX kernel: BUG: soft lockup - CPU#0 stuck for 132s! [ksoftirqd/0:4]
Jul 1 09:30:06 XXXXXXXX kernel: BUG: soft lockup - CPU#0 stuck for 86s! [ksoftirqd/0:4]
Jul 1 09:33:01 XXXXXXXX kernel: BUG: soft lockup - CPU#0 stuck for 89s! [ksoftirqd/0:4]
Jul 1 09:40:24 XXXXXXXX kernel: BUG: soft lockup - CPU#0 stuck for 153s! [ksoftirqd/0:4]
Jul 1 09:45:05 XXXXXXXX kernel: BUG: soft lockup - CPU#0 stuck for 261s! [ksoftirqd/0:4]
Jul 1 09:48:57 XXXXXXXX kernel: BUG: soft lockup - CPU#0 stuck for 175s! [ksoftirqd/0:4]
Jul 1 09:55:03 XXXXXXXX kernel: BUG: soft lockup - CPU#0 stuck for 184s! [ksoftirqd/0:4]
Jul 1 09:56:43 XXXXXXXX kernel: BUG: soft lockup - CPU#0 stuck for 158s! [ksoftirqd/0:4]
Jul 1 09:56:57 XXXXXXXX kernel: BUG: soft lockup - CPU#0 stuck for 93s! [ksoftirqd/0:4]
Jul 1 10:03:05 XXXXXXXX kernel: BUG: soft lockup - CPU#0 stuck for 175s! [ksoftirqd/0:4]
Jul 1 10:13:06 XXXXXXXX kernel: BUG: soft lockup - CPU#0 stuck for 91s! [ksoftirqd/0:4]
Jul 1 10:17:28 XXXXXXXX kernel: BUG: soft lockup - CPU#0 stuck for 171s! [ksoftirqd/0:4]
Jul 1 10:20:04 XXXXXXXX kernel: BUG: soft lockup - CPU#0 stuck for 244s! [ksoftirqd/0:4]
Jul 1 10:20:24 XXXXXXXX kernel: BUG: soft lockup - CPU#0 stuck for 145s! [ksoftirqd/0:4]

とくにシステムが落ちるとかそういった不具合は出ていないようです。
一瞬、うるう秒の問題か?っとも思ったのですが。
ググってみたが、特に有力な情報は今のところ得られていないが、ソフト割り込みにかかわるもののようです。

とりあえず、

[root@XXXXXXXX /]# uname -a
Linux XXXXXXXX.kinet.ne.jp 2.6.32-220.7.1.el6.x86_64 #1 SMP Wed Mar 7 00:52:02 GMT 2012 x86_64 x86_64 x86_64 GNU/Linux

なのですが、カーネルのアップデートが出ていたようなので、アップデートしてみることにした。

が、アップデートして確認してみると、

[root@XXXXXXXX ~]# uname -a
Linux XXXXXXXX.kinet.ne.jp 2.6.32-220.7.1.el6.x86_64 #1 SMP Wed Mar 7 00:52:02 GMT 2012 x86_64 x86_64 x86_64 GNU/Linux

変わってねーwww
あれ、たしかアップデートが入っていたような気がしたのですが(笑)。

他がアップデートされたので、様子を見てみます(笑)。

Raspberry Pi をオーダーしてみた。

食べるパイではありません(笑)。

●Raspberry Pi

・スペック的にはこんな感じで。
•Broadcom BCM2835 (ARM1176JZFS processor(700MHz), FPU、 Videocore 4 GPU搭載)
•GPUは Open GL ES 2.0対応、hardware-accelerated OpenVG、1080p30 H.264 high-profile デコード
•GPU is capable of 1Gpixel/s, 1.5Gtexel/s or 24GFLOPs with texture filtering and DMA infrastructure
•256MB RAM
•SDカードからブート
•10/100 BaseT イーサネットソケット

とりあえず届くまで、9週間くらいかかるらしい・・・^^;
H.264のハードデコードができることに期待したい^^;

台風通過!台風一過でした。

今日は、暑かった…。

気圧変化はこんな感じ。
気圧が上がり始めた頃、天気が治まり始めました。天気把握に気圧は有効ですね。

20120620-210649.jpg

台風接近!気圧は下降中。

気圧センサーは順調に稼動中。台風接近で気圧下降中です。
現在、981hPaです。天気図によると中心気圧は970hPaだそうです。

グローバルIP追加、仮想マシンをひっこしひっこし。

KINETに、グローバルIPを追加割り当てしたので、ひっこし作業中。
とりあえず、おおかた終わったけど、DNS関係と一部のサーバはまだ仮想化してないので、そのまま手をつけず。

ホストマシンの負荷をtopで眺めている(笑)。
load averageって、スレッドの考え方が出てきて、仮想化すると、もはやよくわからん数字になってますね(笑)。
左がLinux KVM、右がVMware Server。

VM用のホストマシンを追加した。

VM用のマシンを一台追加しました。
Linux KVM用ですね。

・新しく追加したマシン
model name : Intel(R) Core(TM) i7-2700K CPU @ 3.50GHz
MemTotal : 32GB
MotherBoard : Intel DQ67OW(Intel Q67チップセット)
用途 : Linux KVM用ホストマシン

※IntelAMT対応なので、BIOSからLAN経由で操作できます。便利です。

model name : Intel(R) Core(TM) i7 CPU 920 @ 2.67GHz
MemTotal : 24GB
MotherBoard : ASUS P6X58D-E(Intel X58チップセット)
用途 : VMware Server用ホストマシン

※Linux KVM用で使っていた物ですが、VMware Server用に移設しました。シリアル拡張カードを追加しているのでシリアルが8本ある以外は、いたって普通のマシンです。

テレビつけたら、風の谷のナウシカ、がやってたw

今日は、仕事という腐海にのまれてましたw

左のMacでXcodeをいじりながら、右のWinでLinuxとルータをいじりながら…。

ふと前をみると、中央のテレビで風の谷のナウシカがやってる…。

もう9時だな。もう還ろうw

滅びてしまいそうです(笑)

20120511-211832.jpg

(続)Linux KVMでPCIパススルー。・・・残念(斬りっ!)

あれから、進展(後退?)したので、ご報告します。
えー、まだうまくいってません。というか、今現在対応不能になってます。

ここで、ホストマシンの接続構成をあげて起きます。

# lspci -vt
-+-[0000:ff]-+-00.0  Intel Corporation Xeon 5500/Core i7 QuickPath Architecture Generic Non-Core Registers
 |           +-00.1  Intel Corporation Xeon 5500/Core i7 QuickPath Architecture System Address Decoder
 |           +-02.0  Intel Corporation Xeon 5500/Core i7 QPI Link 0
 |           +-02.1  Intel Corporation Xeon 5500/Core i7 QPI Physical 0
 |           +-03.0  Intel Corporation Xeon 5500/Core i7 Integrated Memory Controller
 |           +-03.1  Intel Corporation Xeon 5500/Core i7 Integrated Memory Controller Target Address Decoder
 |           +-03.4  Intel Corporation Xeon 5500/Core i7 Integrated Memory Controller Test Registers
 |           +-04.0  Intel Corporation Xeon 5500/Core i7 Integrated Memory Controller Channel 0 Control Registers
 |           +-04.1  Intel Corporation Xeon 5500/Core i7 Integrated Memory Controller Channel 0 Address Registers
 |           +-04.2  Intel Corporation Xeon 5500/Core i7 Integrated Memory Controller Channel 0 Rank Registers
 |           +-04.3  Intel Corporation Xeon 5500/Core i7 Integrated Memory Controller Channel 0 Thermal Control Registers
 |           +-05.0  Intel Corporation Xeon 5500/Core i7 Integrated Memory Controller Channel 1 Control Registers
 |           +-05.1  Intel Corporation Xeon 5500/Core i7 Integrated Memory Controller Channel 1 Address Registers
 |           +-05.2  Intel Corporation Xeon 5500/Core i7 Integrated Memory Controller Channel 1 Rank Registers
 |           +-05.3  Intel Corporation Xeon 5500/Core i7 Integrated Memory Controller Channel 1 Thermal Control Registers
 |           +-06.0  Intel Corporation Xeon 5500/Core i7 Integrated Memory Controller Channel 2 Control Registers
 |           +-06.1  Intel Corporation Xeon 5500/Core i7 Integrated Memory Controller Channel 2 Address Registers
 |           +-06.2  Intel Corporation Xeon 5500/Core i7 Integrated Memory Controller Channel 2 Rank Registers
 |           \-06.3  Intel Corporation Xeon 5500/Core i7 Integrated Memory Controller Channel 2 Thermal Control Registers
 \-[0000:00]-+-00.0  Intel Corporation 5520/5500/X58 I/O Hub to ESI Port
             +-01.0-[01]--
             +-02.0-[02]----00.0  NEC Corporation uPD720200 USB 3.0 Host Controller
             +-03.0-[03]----00.0  NVIDIA Corporation G86 [GeForce 8400 GS]
             +-07.0-[04]--
             +-14.0  Intel Corporation 5520/5500/X58 I/O Hub System Management Registers
             +-14.1  Intel Corporation 5520/5500/X58 I/O Hub GPIO and Scratch Pad Registers
             +-14.2  Intel Corporation 5520/5500/X58 I/O Hub Control Status and RAS Registers
             +-14.3  Intel Corporation 5520/5500/X58 I/O Hub Throttle Registers
             +-1a.0  Intel Corporation 82801JI (ICH10 Family) USB UHCI Controller #4
             +-1a.1  Intel Corporation 82801JI (ICH10 Family) USB UHCI Controller #5
             +-1a.2  Intel Corporation 82801JI (ICH10 Family) USB UHCI Controller #6
             +-1a.7  Intel Corporation 82801JI (ICH10 Family) USB2 EHCI Controller #2
             +-1c.0-[06]--
             +-1c.2-[05]----00.0  Marvell Technology Group Ltd. 88E8056 PCI-E Gigabit Ethernet Controller
             +-1d.0  Intel Corporation 82801JI (ICH10 Family) USB UHCI Controller #1
             +-1d.1  Intel Corporation 82801JI (ICH10 Family) USB UHCI Controller #2
             +-1d.2  Intel Corporation 82801JI (ICH10 Family) USB UHCI Controller #3
             +-1d.7  Intel Corporation 82801JI (ICH10 Family) USB2 EHCI Controller #1
             +-1e.0-[07]--+-00.0  Oxford Semiconductor Ltd OX16PCI954 (Quad 16950 UART) function 0 (Uart)
             |            +-00.1  Oxford Semiconductor Ltd OX16PCI954 (Quad 16950 UART) function 1 (Disabled)
             |            +-01.0  Oxford Semiconductor Ltd OX16PCI954 (Quad 16950 UART) function 0 (Uart)
             |            \-01.1  Oxford Semiconductor Ltd OX16PCI954 (Quad 16950 UART) function 1 (Disabled)
             +-1f.0  Intel Corporation 82801JIR (ICH10R) LPC Interface Controller
             +-1f.2  Intel Corporation 82801JI (ICH10 Family) SATA AHCI Controller
             \-1f.3  Intel Corporation 82801JI (ICH10 Family) SMBus Controller

こんな感じでつながっているわけです。マザーボードは、「ASUS P6X58D-E」です。

ポイントなのが、07:00.0と07:01.0の「Oxford Semiconductor Ltd OX16PCI954」というやつ。
これは、PCI版のRS232C 4ポートカードです。2枚入ってます。I/O DATAの「RSA-PCI2/P4」です。
最近のマザーボードなので、PCIバスがPCIe to PCIブリッジ下にいるわけです。

で、これを2枚をPCIパススルーしたいわけなので、

# qemu-kvm -device pci-assign,host=07:00.0 -device pci-assign,host=07:01.0

と、QEMUに pci-assign オプションを加えて起動すると、

Failed to assign irq for "????": Operation not permitted
Perhaps you are assigning a device that shares an IRQ with another device?
Failed to initialize assigned device host=07:00.0

とQEMUに起こられてそもそも起動しない、という状況でした。
もんもんとすごしていたのですが、ふと

# qemu-kvm -device pci-assign,host=07:01.0

としたところ、なぜか起動(笑)。
WindowsXPが起動できました。もしかすると、2枚挿すと調子が悪いかもしれません(未検証)。

が、しかし起動後、ハードウェアウイザードで、RSA-PCI2/P4のドライバをインストールすると、

落ちた!!!

そう、QEMUが落ちてしまいます。で、logには、

Apr 16 01:01:05 eve kernel: device tap0 entered promiscuous mode
Apr 16 01:01:05 eve kernel: br0: new device tap0 does not support netpoll (disabling)
Apr 16 01:01:05 eve kernel: br0: port 2(tap0) entering learning state
Apr 16 01:01:05 eve kernel: br0: port 2(tap0) entering learning state
Apr 16 01:01:05 eve kernel: pci-stub 0000:07:01.0: PCI INT A -> GSI 17 (level, low) -> IRQ
 17
Apr 16 01:01:20 eve kernel: br0: port 2(tap0) entering forwarding state
Apr 16 01:01:55 eve kernel: qemu-kvm[13433] general protection ip:7ffee654f659 sp:4085dd80
 error:0 in qemu-system-x86_64_1_0[7ffee63b4000+2ff000]

Apr 16 01:01:55 eve kernel: qemu-kvm[13433] general protection

ってなんだー(泣)。

qemu-kvm 1.0が出ていたので、こっちも試しましたがまったくダメ(T_T)。
なんとなく、マザーボードのIOMMU対応に問題があるような気がしてきた・・・。
「ASUS P6X58D-E」の問題なのかも。IOMMUとMarvell 9128問題もあるし、RTCが認識できないとか、結構問題あり。

もうドツボデス(T_T)。

で、じつはなぜPCIパススルーをやることになった経緯は?というと、tel2comホストとパソ通ホストをRS-232Cでクロス接続したとき、XMODEM/YMODEMなどのバイナリ送受信がうまくいかなかったこと、がそもそもの原因です。仮想化によるデバイスのカプセル化による影響かと。
PCIパススルーすれば、仮想化の影響から開放されるかと思ったのですが、あまかった(笑)。
これはしばらくお預けです。

で、本当に問題なのかということで、下記の検証をしてみました。

仮想環境下のWindowsXP+tel2com < -> パソ通ホスト(物理マシン)

としてみました。パソ通ホストは物理的にあるマシンです。
で、やってみたところ、なんとXMODEM/YMODEMが使えるのです!!!。

え?どういうこと?

どうやら、パソ通ホストがMS-DOSで動いているわけですが、RS232CドライバにMCDPC.EXEを使っています。
QEMUのシリアルが、ISAで16550A互換ということなのですが、どうやら完全互換ではないようです。
FIFOの関係かなーとか考えていますが、まだよくわかりません。

hw/serial.c のソースプログラムと格闘中です(泣)。

夜寝られるかな・・・ww。

LInux KVMでPCIパススルー。

結論からいうと、現時点でうまくいってない(T_T)

RS232Cカード2枚を、ゲストマシン側にPCIパススルーで認識させようとしているのだが…。
どうもうまくいかない。

しかも6Gbps SATAチップであるMarvell 9128チップと、PCIパススルーに必要なIOMMUが大バッティング。カーネル再構築したあと認識させると調子悪いのオンパレード。Linuxカーネルのバグのようです。
カーネルパニックして落ちまくり〜。これのせいで、夜作業(笑)

上記の件は、Marvell9128を使わないように接続構成を変更して回避したのだけど、どうしてもRS232Cカード2枚がゲストマシンを起動しようとすると、QEMUがそもそも起動できない。IRQが見えていないようで…。とエラー。試しにその上位であるPCIブリッジはどうかと思うと見えるw

どうしたものか…。と路頭に迷い現在は元に戻してサーバ運用中。う〜ん。こまった。

追伸)

AMT対応マザーで構築すれば良かった、とちょっと後悔。
失敗するとサーバのある現地までいかなくてはならないし。

世間様では、地デジチューナーであるPT2のケースではうまくいってるようで…。

ためしに、うちでもPT2でうまくいくか試してみるか。
これで、カード特有の問題か環境の問題かはっきりするかも。