MIPS64のloongson(龍芯)のOS入手先


2017年3月8日に「中国製CPU「龍芯3号 3A3000」を搭載したノートPC、間もなく登場か」という記事が出たときに調べたところ、いくつか面白い話を発見したので、メモして置いた

例えば、Oracle OpenJDKにいろいろコードを突っ込んだ話(「龙芯中科与Oracle正式签署OpenJDK Contributor协议」)とか
QEMU、nodejs,Fedoraへの貢献とか(「龙芯向QEMU、nodejs、Fedora等一批开源软件社区提交贡献」)

Linux OSもDebian,Fedora,Ubuntuがあるようで、当時はMIPSコアに関する権利を持っているImagination technologyにあった
https://mipsdistros.imgtec.com/ にて配布していた。
しかし、2017年11月頃に確認してみると、mipsdistrosが消滅・・・

Debianについては「https://wiki.debian.org/MIPSPort」の「Build daemons & porter boxes」に「Loongson 3A」のマシンが何台かいるのでバイナリの入手には問題なさそう
また、「DebianYeeloong」にてLoongson-2Fベースのノートパソコン向けの情報もある。
このノートパソコン、「江苏航天龙梦信息技术有限公司」というメーカが出しておりATXマザーボードとかいろんなLoongson(龙芯)採用製品を販売中。

Fedoraについては「https://fedoraproject.org/wiki/Architectures/MIPS/2015Bootstrap/mips64el」に資料が一部あるが、Fedora24までで、また、ダウンロード先が 消えた https://mipsdistros.imgtec.com/ となっているため役に立たず

じゃぁ、いまはどこに見に行けばいいのかを確認してみると
龙芯3A3000/3B3000」の製品ページに掲載されているPDFにバグ報告先としてhttp://bugs.loongnix.org/とあるところから「Loongnix 系统」を発見。
また、Loongson関連製品を販売している航天龙梦にも「航天龙梦wiki」があった。
また「OPENLOONGSON.ORG」というニュースサイトもあった。

さて・・・2018年1月15日の段階でのOSについてまとめる

・Fedora 21
CPU開発元の推奨はFedora21をベースに開発された「Loongnix」である模様。
搭載製品をリリースしている航天龙梦も「Fedora for Loongson」を見る限り、LoongnixをベースにMETEデスクトップ向けのカスタマイズしたものを使用しているようだ。

・Debian 9
Debian GNU/Linux インストールガイド for MIPS64el
「2.1.1. サポートするアーキテクチャ」に「Loongson 3」がサポート対象として明記されている。
mipselとmips64elの2つでサポートとのこと。

・Ubuntu 16.04
Loongnixのyumレポジトリは「http://ftp.loongnix.org/os/loongnix/1.0/os/」ということなので、試しにツリーをのぼってみるとhttp://ftp.loongnix.org/os/ubuntu/なんてディレクトリが・・・
2017/12/20生成のUbuntu 16.04のISOイメージなんてのを発見(http://ftp.loongnix.org/os/ubuntu/iso/)

・Ubuntuベース?
中标软件有限公司が開発している中标麒麟OSというのもある模様。「中标麒麟桌面操作系统V7.0(龙芯个人版)
アルファベット表記だと「Ubuntu Kylin」になるようだが、Ubuntuのどれベースになるのかが不明。
たぶん、16.04なんだと思いますが、下記の記事のようにWindows XPのような見た目にしているようです

関連記事:PC Watch「龍芯3号で動作するWindowsそっくりなLinux OS「中標麒麟V7.0」

LTOテープをファイルシステムとして使うLTFSについて 2018/01/04版


LTOテープをファイルシステムとして使うLTFSについて 2020/05/11版」にて内容を更新しました。


前回LTFSの現状についてまとめた記事から2年が経過した。
(「LTOテープをファイルシステムとして使うLTFSについて 2015/11/18版」)

2年経過し、LTO-8も登場。
LTFSの規格にも変化が出ているのかな?と調査してみた。


過去のLTFS関連記事
 「LTOテープをファイルシステムとして使うLTFS(2012/11/28)
 「テープ装置メーカ純正のLTFS一覧(2013/12/20更新)
 「IBM版LTFSをRHEL5で使ってみた(2013/05/20)
 「LTOテープをファイルシステムとして使うLTFSについて 2014/06/09版
 「LTOテープをファイルシステムとして使うLTFSについて 2015/11/18版


LTFSとは?

LTO-5/LTO-6からは、メディアを2つの領域に分割して利用することが可能になった。
その機能を活かし、1本のテープメディアの中に、メディア内データの管理情報と、実データを分割して保存することを可能とした。
これにより、これまで実現出来なかった、1本のテープメディアだけで可搬性のあるファイルシステム構築、というものが可能となり、その実装として、LTFS(Linear Tape File System)というのがある。

使用用途としては、バックアップ用ではなく、長期保存のためのアーカイブ用や、大容量データの持ち運び用として使用されている。

LTFSを実現するためのソフトウェアについては、基本的には、IBMが大本のベースを作り、それを各LTOドライブメーカが、自社ドライブ向けにカスタマイズして提供しているような形となっている。

LTFSのバージョン(フォーマット)

LTFSには、バージョンがいくつかあり、現状気にしなければならないのは、以下の5つ
・LTFS 1.0
・LTFS 2.0 : ファイルインデックス関連で機能をいろいろ追加
・LTFS 2.1 : 2012/05/18リリース。LTFS2.0+シンボリックリンク
・LTFS 2.2 : 2013/12/21リリース。管理情報の改良
・LTFS 2.3 : 2016/03/08リリース。各ファイルのハッシュ情報とファイル名のエンコーディングを追加
(LTFS 2.3.1が2017/05/24にリリースされてますが、LTFS 2.3のバグ修正的なものなので、省略)

「LTFSのバージョン」と「LTFSソフトウェアのバージョン」は別物なので注意が必要。
たとえば、OracleのLTFSソフトウェアは「ver1.2.7」だが、「LTFS 2.2」に対応している。

LTFS2.2対応は重要だが、LTFS2.3対応はそれほど重要ではないので、とりあえず、現行リリースされているLTFSソフトウェアはほぼLTFS2.2以降対応なので、あまり心配しなくてもよさそう。

LTFS2.3の規格書はSNIAの「Linear Tape File System (LTFS)」の「Linear Tape File System (LTFS) Format Specification」にてpdfで公開されている。

その他、いろんな情報は、LTOの規格団体の「LTFS Overview」にある。

LTFSソフトウェアの種類

LTFSの公式認証を取得しているLTFSソフトウェアについては、「LTFS Compliance Verification」にて紹介されている。

2018/01/04時点では以下の8個が登録されている。

Company Product Version LTFS Version LTO Generation Date tested
Quantum Quantum Scalar LTFS Appliance 2.0.2 2.0.1 LTO5 & 6 9/11/13
HP HP StoreOpen Standalone 2.1.0 2.1.0 LTO5 & 6 9/11/13
IBM IBM Single Drive Version 1.3.0 2.1.0 LTO5 & 6 9/11/13
IBM IBM LTFS Library Edition V1R3 2.1.0 LTO5 & 6 10/2/13
Quantum Quantum LTFS 2.1.0 2.1.0 LTO5 & 6 11/29/13
HP HP StoreOpen Automation 1.2.0 2.0.1 LTO5 & 6 11/29/13
Spectra Logic Spectra Logic Black Pearl 1.1 2.2 LTO5 & 6 9/11/15
MT-Consulting NODEUM 1.1 2.1.0 LTO5 & 6 7/05/16

2015年にSpectra Logicが追加、2016年にMT-Consultingが追加されている以外、バージョンに動きがない。しかし、実際には各LTFSソフトウェアともにバージョンアップを行っている。
なお、LTFSソフトウェアのバージョンと、対応しているLTFSフォーマットのバージョンに直接の関連性は無いので注意が必要。


各ドライブメーカが出しているLTFSソフトウェアについて

まずは、上記のリストに載っているメーカのものから。

・IBM
公式: IBM Spectrum Archive(IBM Linear Tape File System)

IBMのLTFSは「IBM Spectrum Archive」という商品名になっている。
テープベンダのSpectra Logicとは関係がないようだ。

ソフトウェアの入手は、「Fix Central」にて「製品グループ:System Storage」-「Tape Systems」-「Tape drives and software」の下にある「IBM Spectrum Archive Single Drive Edition(SDE) (旧名:LTFS Single Drive Edition)」や「IBM Spectrum Archive Library Edition(LE)(旧名:LTFS Library Edition)」「IBM Spectrum Archive Enterprise Edition(EE)」を選択して行う。
なお、LEとEEの方はアップデータのみの配布で、元になるソフトウェアについては、IBMから別途入手する必要がある。
基本的には、Single Drive Edition(SDE)が、他の全てのLTFSソフトウェアの原型になっているもの・・・という感じである。

2018/01/04時点での最新は、
IBM Spectrum Archive Enterprise Edition: ver1.2.5.0(2017/11/02) LTO-8対応/LTFS2.2まで対応
IBM Spectrum Archive Library Edition : ver2.4.0.0(2017/10/10) LTO-8対応/LTFS2.4対応
IBM Spectrum Archive Single Drive Edition: ver2.4.0.0(2017/10/10) LTO-8対応/LTFS2.4対応

IBM的にはLTFS 2.3はエンコードのバグがあるので、それを修正したものをLTFS 2.4と称している模様。

・HP
公式: HPE StoreOpen and Linear Tape File System (LTFS) Software
日本語情報: HP LTFS (Linear Tape File System)

単体ドライブ向けのみだが「日本語の導入マニュアル」が用意されている。

分社化の影響で、LTFS関連はHP Enterpriseに移籍したが、関連リンクが更新されていないので、いろんなところでリンク切れが発生している。
以前は「http://www.hp.com/go/ltfs/」といういい感じのショートカットがあったが、StoreOpenというショートカットに変わってしまった。

ソフトウェア関連は「HP StoreOpen and Linear Tape File System (LTFS) Software」からたどる事になる。

ソフトウェアの入手は、単体ドライブ向けの「HP StoreOpen Standalone」も、チェンジャー向け「HP StoreOpen Automation」も上記のページの「Get drivers, software & firmware.」から行う。

2018/01/04時点での最新は、
HP StoreOpen Standalone : ver3.2.0(2017/02/06) LTO-7まで対応
HP StoreOpen Automation : ver3.1.0(2016/07/22)
規格としてのLTFSの対応バージョンについての明記が見当たらず。

2018/02/26追記
HP StoreOpen Standalone : ver3.3.0(2018/02/05) LTO-8まで対応
「Support for SNIA 2.4」という記載もあるのでLTFS2.4にも対応している模様

・Quantum
公式: Linear Tape File System

ソフトウェア入手は上記の公式ページの「Software」タブから行う。
ソースコードについては、LTFS Open Source Filesから。

2014/06/09時点での最新は、
Linux/Mac : ver2.2.0(2015/12) LTO-7/LTFS2.2対応
Windows Model Bドライブ向け: ver3.0(2016/04) LTO-6以降という曖昧な記述のみ
Windows Model Cドライブ向け: ver2.2.1(2014/10) LTO-7/LTFS2.2対応。おそらくLinux/Mac向けと同じベース

Linux版のReleasenoteには、Quantum LTOドライブのほか、IBM LTOドライブにも対応という記述がある。

・Quantum Scalar LTFS Appliance
公式:Scalar LTFSアプライアンス

ハードウェアがセットになったアプライアンス。
これの下にFC経由などでテープチェンジャーを繋いで使うもの。

・Spectra Logic
公式:Linear Tape File System (LTFS)

LTFSを紹介するページはあるものの、LTFSを利用するソフトウェアに関するページが見当たらない。
また、バージョンもわからず。
BlackPearlというアプライアンスで、階層型ストレージとしてディスクとテープなどのストレージを組み合わせて使用する。

・MT-C NODEUM
公式:NODEUM

リストには「MT-Consulting」とあるが「MT-C」と改称した模様。
階層型ストレージとして、ディスクとテープなどを組み合わせて使用できるようにする、ソフトウェアのみを販売している?


リストに載っていない、LTFS

・TANDBERG DATA
公式: LTFS for Archive

以前は「LTFS for Big Data」という扱いだったが、「Archive」にかえたようだ。

ソフトウェアの入手は「LTFS Downloads for LTO-5/6」か「LTFS Downloads for LTO7」から行う。

2018/01/04時点での最新は
LTO-5/6向け: ver 3.0.0
LTO-7向け: ver 2.2.2

ページは英語表記だが、ドキュメントアイコンが日の丸になってるとおり、ダウンロードできるドキュメントは日本語化されている。
一部TANBERGカスタマイズが入っているようだが、基本的にはHP StoreOpen相当品。

・Oracle
公式: Oracle’s StorageTek Linear Tape File System, Open Edition
製品としてのページ: Oracle StorageTek Linear Tape File System (LTFS), Open Edition and Library Edition

ソフトウェアの入手は「https://oss.oracle.com/projects/ltfs/files/」から行う。

2018/01/04時点での最新は2015年時点と変わらず
ltfs-1.2.7(2015/10/07)

IBM LTFS 2.2.0.2とHP LTFS 2.2.1を組み合わせ、Oracle/StorageTek用の設定を入れたもの。
Oracle LTOドライブ,IBM LTOドライブ,HP LTOドライブに対応している。

Resouceページで「LTFS For Dummies」という51ページのPDFを公開しているのが興味深い。
??? For Dummiesは、アメリカで販売されているいろんな分野の初心者向け書籍シリーズ。「ダミー人形向けの」→「バカでも分かる」というものなんだけど・・・このLFS for Dummies、解説具合が微妙過ぎるなぁ・・・


LTFS関連のツール紹介

・LTOpers
公式: https://github.com/amiaopensource/ltopers
LTFSを使いやすくするためのBASHスクリプトのフロントエンドプログラム
Quantum LTFS 2.2向けで、Homebrewでインストールし、ということなので、MacOSX向けとして作られているようだが、スクリプトを読むと.linuxbrewディレクトリがあった場合の条件分岐があるので、Linuxでも使えそう。

OpenStack上の仮想インスタンスを物理サーバ間移動(マイグレーション)させる手法について


2022/04/20追記

このページに記載しているのはOpenStack Pike(16番目のリリース)ぐらいまでの話です。

それ以降のOpenStackについては関わっていないので不明です。


OpenStackで仮想インスタンスを動かしている場合に、物理サーバ間を移動させる手法について、いまいちまとまっているものがなかったので、メモ。

・物理サーバを指定して仮想インスタンスを起動

→ 不可能

アベイラビリティーゾーン(availability-zone)というサーバをまとめたグループ(雑な表現)を指定して起動することまでしかできない

・仮想インスタンスを稼働中に物理サーバを移動させる

→ 可能

例えば起動ディスクを含めcinderボリュームを使っている場合、下記コマンドで実施できる

# openstack server migrate --live 移動先ComputeNode --block-migration 仮想インスタンスUUID --wait

なぜか「migrate」と「migration」の2つの単語が混じっている、という不親切なつくりなので、惑わされないこと。

上記だと、移動が終わるまでコマンドが終了しない。「–wait」を抜いた場合、下記の様な形でマイグレーションの進捗状況を確認することが出来る

# openstack server migrate --live 移動先ComputeNode --block-migration 仮想インスタンスUUID
# nova server-migration-list
# nova server-mgirationshow 仮想インスタンスUUID マイグレーション番号

「openstack sevrer show 仮想インスタンスUUID」では進捗のパーセンテージのみ確認可能。

それに対して、「nova server-mgirationshow 仮想インスタンスUUID マイグレーション番号」では、全体で何バイト転送する必要があり、現在何バイト転送が終了しているか、といった詳細を確認することができる。

参考資料
 nova Migrate instances
 nova Live-migrate instances

・止まってる物理サーバ上にあった仮想インスタンスを他の物理サーバで起動させる

→ nova evacuateコマンドで可能

# nova evacuate 仮想インスタンスUUID 移動先ComputeNode

nova evacuateは、元々起動していた物理サーバ上の「nova-compute」と通信が取れない場合に実行できる。

nova-computeと通信が取れる状態だとエラーになる・・・無理矢理実行したいのであれば、該当サーバ上のnova-computeを落とせばできなくもない。

参考資料
 nova Evacuate instances
 nova Recover from a failed compute node

・ERRORステータスになっててmigrateが出来ない

「nova reset-state 仮想インスタンスUUID」を実行することで、ステータスがリセットできる。

参考資料
 nova Troubleshoot Compute

HUION GT-156HD v2をUbuntu 17.10に繋いでみた際のデバイス認識状況



HUION GT-156HD v2をUbuntu 17.10マシンに繋いだ時に、どう認識されるかを確認してみた。

ただし、Linux上でちゃんとタブレットとして認識したわけではないです。

lshwの実行結果から抜粋

                    *-usb:1
                         詳細: USBハブ
                         製品: USB2.0Hub
                         ベンダー: Alcor Micro Corp.
                         物理ID: 2
                         バス情報: usb@1:1.2.2
                         バージョン: 1.00
                         性能: usb-2.00
                         設定: driver=hub maxpower=100mA slots=4 speed=480Mbit/s
                       *-usb:0
                            詳細: マウス
                            製品: Tablet Monitor
                            物理ID: 1
                            バス情報: usb@1:1.2.2.1
                            バージョン: 0.00
                            性能: usb-1.10
                            設定: driver=usbhid maxpower=100mA speed=12Mbit/s
                       *-usb:1
                            詳細: マスストレージデバイス
                            製品: Mass Storage Device
                            ベンダー: Generic
                            物理ID: 4
                            バス情報: usb@1:1.2.2.4
                            論理名: scsi0
                            バージョン: 1.00
                            シリアル: 058F0O1111B1
                            性能: usb-2.00 scsi emulated scsi-host
                            設定: driver=usb-storage maxpower=100mA speed=480Mbit/s
                          *-disk
                               詳細: SCSI Disk
                               製品: Flash Reader
                               ベンダー: Multi
                               物理ID: 0.0.0
                               バス情報: scsi@0:0.0.0
                               論理名: /dev/sda
                               バージョン: 1.00
                               性能: removable
                               設定: logicalsectorsize=512 sectorsize=512
                             *-medium
                                  物理ID: 0
                                  論理名: /dev/sda

lsusbの実行結果から抜粋

Bus 001 Device 013: ID 058f:6366 Alcor Micro Corp. Multi Flash Reader
Bus 001 Device 012: ID 256c:006e
Bus 001 Device 011: ID 058f:6254 Alcor Micro Corp. USB Hub

lsusb -vの実行結果から抜粋

Bus 001 Device 013: ID 058f:6366 Alcor Micro Corp. Multi Flash Reader
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0
  bDeviceProtocol         0
  bMaxPacketSize0        64
  idVendor           0x058f Alcor Micro Corp.
  idProduct          0x6366 Multi Flash Reader
  bcdDevice            1.00
  iManufacturer           1 Generic
  iProduct                2 Mass Storage Device
  iSerial                 3 058F0O1111B1
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           32
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0
    bmAttributes         0x80
      (Bus Powered)
    MaxPower              100mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass         8 Mass Storage
      bInterfaceSubClass      6 SCSI
      bInterfaceProtocol     80 Bulk-Only
      iInterface              0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x01  EP 1 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x82  EP 2 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
Device Qualifier (for other device speed):
  bLength                10
  bDescriptorType         6
  bcdUSB               2.00
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0
  bDeviceProtocol         0
  bMaxPacketSize0        64
  bNumConfigurations      1
Device Status:     0x0000
  (Bus Powered)

Bus 001 Device 012: ID 256c:006e
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               1.10
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0
  bDeviceProtocol         0
  bMaxPacketSize0         8
  idVendor           0x256c
  idProduct          0x006e
  bcdDevice            0.00
  iManufacturer           5 (error)
  iProduct                6 Tablet Monitor
  iSerial                 0
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           59
    bNumInterfaces          2
    bConfigurationValue     1
    iConfiguration          0
    bmAttributes         0xa0
      (Bus Powered)
      Remote Wakeup
    MaxPower              100mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         3 Human Interface Device
      bInterfaceSubClass      1 Boot Interface Subclass
      bInterfaceProtocol      2 Mouse
      iInterface              0
        HID Device Descriptor:
          bLength                 9
          bDescriptorType        33
          bcdHID               1.11
          bCountryCode            0 Not supported
          bNumDescriptors         1
          bDescriptorType        34 Report
          wDescriptorLength      18
         Report Descriptors:
           ** UNAVAILABLE **
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               2
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         3 Human Interface Device
      bInterfaceSubClass      1 Boot Interface Subclass
      bInterfaceProtocol      2 Mouse
      iInterface              0
        HID Device Descriptor:
          bLength                 9
          bDescriptorType        33
          bcdHID               1.11
          bCountryCode            0 Not supported
          bNumDescriptors         1
          bDescriptorType        34 Report
          wDescriptorLength      83
         Report Descriptors:
           ** UNAVAILABLE **
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x82  EP 2 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0010  1x 16 bytes
        bInterval               2
Device Status:     0x0000
  (Bus Powered)

Bus 001 Device 011: ID 058f:6254 Alcor Micro Corp. USB Hub
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            9 Hub
  bDeviceSubClass         0 Unused
  bDeviceProtocol         1 Single TT
  bMaxPacketSize0        64
  idVendor           0x058f Alcor Micro Corp.
  idProduct          0x6254 USB Hub
  bcdDevice            1.00
  iManufacturer           0
  iProduct                1 USB2.0Hub
  iSerial                 0
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           25
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0
    bmAttributes         0xe0
      Self Powered
      Remote Wakeup
    MaxPower              100mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         9 Hub
      bInterfaceSubClass      0 Unused
      bInterfaceProtocol      0 Full speed (or root) hub
      iInterface              0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0001  1x 1 bytes
        bInterval              12
Hub Descriptor:
  bLength               9
  bDescriptorType      41
  nNbrPorts             4
  wHubCharacteristic 0x0080
    Ganged power switching
    Ganged overcurrent protection
    TT think time 8 FS bits
    Port indicators
  bPwrOn2PwrGood       50 * 2 milli seconds
  bHubContrCurrent    100 milli Ampere
  DeviceRemovable    0x00
  PortPwrCtrlMask    0xff
 Hub Port Status:
   Port 1: 0000.0103 power enable connect
   Port 2: 0000.0100 power
   Port 3: 0000.0100 power
   Port 4: 0000.0503 highspeed power enable connect
Device Qualifier (for other device speed):
  bLength                10
  bDescriptorType         6
  bcdUSB               2.00
  bDeviceClass            9 Hub
  bDeviceSubClass         0 Unused
  bDeviceProtocol         0 Full speed (or root) hub
  bMaxPacketSize0        64
  bNumConfigurations      1
Device Status:     0x0001
  Self Powered

RHEL7でpam_tally2が使えるのか?


RedHat Enterprise Linuxでパスワードを複数回間違えたらロックをかける、ということをさせる場合、RHEL5,RHEL6の情報だとpam_tally2を使う、というのが出てくる。
RHEL7だとpam_faillockを使う、という話も出てくる。

サポートサイト情報「How to lock out a user to login a system after a set number of failed attempts in Red Hat Enterprise Linux using pam_tally/pam_tally2
RHEL7の関連ドキュメント「第4章 ツールとサービスを使用したシステム強化

でも、RHEL7にはpam_tally2も入っていて使えそうな感じがする・・・

使えるのかなぁ?と思って試したところ、とりあえずつかえはしました。
ただ・・・こういう動作は普通なんだろうか?という動きをしているところがいくつか・・・

  • pam_tally2のFailuresカウントはpam_tally2 -rでリセットするか、該当ユーザがログインに成功するかでカウントが0になる
  • unlock_timeを過ぎてもpam_tally2のFailuresカウントは自動リセットされず継続する
  • 「passwd -S ユーザ」でロックされているかの確認ができない

なお、「passwd -S ユーザ」によるロック状態のチェックは、pam_faillockを使った場合でも使えません。

実際の動作について

とりあえず、pam_tally2設定を行い、パスワード入力を規定回数以上間違えます。

このようなpam_tally2によりロックされている場合、コンソールログインをしようとすると下記のような表示となります。

ホスト名 login: <ユーザ名>
Account locked due to <カウント> failed logins
Password:

システムのログとしては /var/log/secure に対して下記のような出力があります。

Nov 22 18:35:21 linuxtest <authpriv.notice> login:pam_tally2(login:auth): user <ユーザ名>(<UID>) tally 7, deny 5

ここで、さらに間違うとカウントは増加していきます。

unlock_timeが設定されている場合、 unlock_timeの時間が経過した後、1回目の試行でログインに成功すると、カウントが0に戻ります。

しかし、ここでさらにパスワードを間違えてしまうと、 前回のFailuresカウントがリセットされず、カウントが継続して増えていきます。
そして、失敗回数超過がすぐに適用されてしまうため、再度ロックされてしまいます。