apt-get実行中にディスクがフルになったせいでapt-getができなくなった

apt-get upgrade中にディスクフルになってしまったために、
それ以後、apt-get upgradeが失敗するようになってしまった。

root@orangepiplus:~# apt-get upgrade
Reading package lists... Done
Building dependency tree
Reading state information... Done
Calculating upgrade... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
5 not fully installed or removed.
Need to get 0 B/91.1 kB of archives.
After this operation, 0 B of additional disk space will be used.
Do you want to continue? [Y/n]; y
dpkg: error processing package gvfs-libs:armhf (--configure):
 package is in a very bad inconsistent state; you should
 reinstall it before attempting configuration
dpkg: dependency problems prevent configuration of gvfs-daemons:
 gvfs-daemons depends on gvfs-libs (= 1.24.2-0ubuntu0.1); however:
  Package gvfs-libs:armhf is not configured yet.

dpkg: error processing package gvfs-daemons (--configure):
 dependency problems - leaving unconfigured
dpkg: dependency problems prevent configuration of gvfs:armhf:
 gvfs:armhf depends on gvfs-daemons (>= 1.24.2-0ubuntu0.1); however:
  Package gvfs-daemons is not configured yet.
 gvfs:armhf depends on gvfs-daemons (<< 1.24.2-0ubuntu0.1.1~); however:
  Package gvfs-daemons is not configured yet.
 gvfs:armhf depends on gvfs-libs (= 1.24.2-0ubuntu0.1); however:
  Package gvfs-libs:armhf is not configured yet.

dpkg: error processing package gvfs:armhf (--configure):
 dependency problems - leaving unconfigured
dpkg: dependency problems prevent configuration of gvfs-backends:
 gvfs-backends depends on gvfs (= 1.24.2-0ubuntu0.1); however:
  Package gvfs:armhf is not configured yet.
 gvfs-backends depends on gvfs-daemons (= 1.24.2-0ubuntu0.1); however:
  Package gvfs-daemons is not configured yet.
 gvfs-backends depends on gvfs-libs (= 1.24.2-0ubuntu0.1); however:
  Package gvfs-libs:armhf is not configured yet.

dpkg: error processing package gvfs-backends (--configure):
 dependency problems - leaving unconfigured
dpkg: dependency problems prevent configuration of gvfs-fuse:
 gvfs-fuse depends on gvfs (= 1.24.2-0ubuntu0.1); however:
  Package gvfs:armhf is not configured yet.

dpkg: error processing package gvfs-fuse (--configure):
 dependency problems - leaving unconfigured
Errors were encountered while processing:
 gvfs-libs:armhf
 gvfs-daemons
 gvfs:armhf
 gvfs-backends
 gvfs-fuse
E: Sub-process /usr/bin/dpkg returned an error code (1)
root@orangepiplus:~# 

解決方法
「apt-get –reinstall install 問題となってるパッケージ名」を実行する。

今回の場合、エラーとなったパッケージを全部指定すればいいのかな、と「apt-get –reinstall install gvfs-libs:armhf gvfs-backends gvfs-daemons gvfs:armhf gvfs-fuse」を実行してみたもののエラー

root@orangepiplus:~# apt-get --reinstall install gvfs-libs:armhf gvfs-backends gvfs-daemons gvfs:armhf gvfs-fuse
Reading package lists... Done
Building dependency tree
Reading state information... Done
0 upgraded, 0 newly installed, 5 reinstalled, 0 to remove and 0 not upgraded.
5 not fully installed or removed.
Need to get 0 B/91.1 kB of archives.
After this operation, 0 B of additional disk space will be used.
E: Internal Error, No file name for gvfs-daemons:armhf
root@orangepiplus:~#

では、と「apt-get –reinstall install gvfs-libs:armhf」と実行してみると、今度は成功。

root@orangepiplus:~# apt-get --reinstall install gvfs-libs:armhf
Reading package lists... Done
Building dependency tree
Reading state information... Done
0 upgraded, 0 newly installed, 1 reinstalled, 0 to remove and 0 not upgraded.
5 not fully installed or removed.
Need to get 0 B/91.1 kB of archives.
After this operation, 0 B of additional disk space will be used.
(Reading database ... 111013 files and directories currently installed.)
Preparing to unpack .../gvfs-libs_1.24.2-0ubuntu0.1_armhf.deb ...
Unpacking gvfs-libs:armhf (1.24.2-0ubuntu0.1) over (1.24.2-0ubuntu0.1) ...
Setting up gvfs-libs:armhf (1.24.2-0ubuntu0.1) ...
Setting up gvfs-daemons (1.24.2-0ubuntu0.1) ...
Setting up gvfs:armhf (1.24.2-0ubuntu0.1) ...
Setting up gvfs-backends (1.24.2-0ubuntu0.1) ...
Setting up gvfs-fuse (1.24.2-0ubuntu0.1) ...
root@orangepiplus:~#

で、これ以降は、エラー無く、「apt-get upgrade」が実行できるようになりました。

LTOテープをファイルシステムとして使うLTFSについて 2015/11/18版

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


LTO-8がリリースされたので、「LTOテープをファイルシステムとして使うLTFSについて 2018/01/04版」という記事を作成し、情報を更新しました。


LTOテープ1本を持ち運びができるファイルシステムメディアとして使用できるようにするLTFSについて、LTO7メディアが市販され始めたということもあり、最近の状況について確認した。

LTO7関連で規格修正があるかな?と確認してみたが、2015/11/18現在で公開されている規格およびソフトウェアで、LTO7について言及しているものが見当たらなかったので、基本各リンク情報の更新となる。

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

LTFSとは?

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

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

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

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

LTFSには、バージョンがいくつかあり、現状気にしなければならないのは、以下の4つ
・LTFS 1.0
・LTFS 2.0 : ファイルインデックス関連で機能をいろいろ追加
・LTFS 2.1 : 2012/05/18リリース。LTFS2.0+シンボリックリンク(現在draft版)
・LTFS 2.2 : 2013/12/21リリース。管理情報の改良

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

とはいえ、2015/11/18現在では、どのLTFSソフトウェアもLTFS 2.2に対応しているので、新規導入分に関しては特に気にする必要はない。

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

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

LTFSソフトウェアの種類

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

2015/11/18時点では以下の6個が登録されている。

 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

Spectra LogicのLTFSが追加された以外、2014年時点のものから更新がないが、実際には各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ソフトウェアの原型になっているもの・・・という感じである。

2015/11/18時点での最新は、
IBM Spectrum Archive Enterprise Edition: ver1.1.2.0(2015/07/27)
IBM Spectrum Archive Library Edition : ver2.1.5.0(2015/10/02)
IBM Spectrum Archive Single Drive Edition: ver2.2.1.0(2015/10/02)

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

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

分社化の影響で、LTFS関連はHP Enterpriseに移籍したが、関連リンクが更新されていないので、いろんなところでリンク切れが発生している。
ソフトウェア関連は「HP StoreOpen and Linear Tape File System (LTFS) Software」からたどる事になる。

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

2015/11/18時点での最新は、
HP StoreOpen Standalone : ver2.3.0(2015/04/30)
HP StoreOpen Automation : ver2.0.0(2014/11/06)

・Quantum
公式: Linear Tape File System

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

2014/06/09時点での最新は、
Linux/Mac : ver2.1.2(2014/10)
Windows: ver2.2.1(2014/11)

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

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

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

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

LTFSを紹介するページはあるものの、LTFSを利用するソフトウェアに関するページが見当たらない。
また、バージョンもわからず。

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

・TANDBERG DATA
公式: LTFS for Big Data Storage

ソフトウェアの入手は「LTFS Documents and Downloadsから行う。

2015/11/18時点での最新は
バイナリ: ver2.3.0

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

・Oracle
公式: Oracle’s StorageTek Linear Tape File System, Open Edition

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

2015/11/18時点での最新は
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ドライブに対応している。

RHEL/CentOS6でSolarisみたいなsyslog出力を行う

Solarisからの移行ユーザからこんなことを言われた。

Solarisだとログ出力にFacitilyとPriorityがあるのに、Linuxはなんで無いの?

Solarisの例

Aug 21 18:30:26 solaris hme: [ID 517527 kern.info] SUNW,hme0 : Internal Transceiver Selected.
Aug 21 18:30:26 solaris hme: [ID 517527 kern.info] SUNW,hme0 :   100 Mbps Full-Duplex Link Up
Aug 21 18:30:54 solaris savecore: [ID 570001 auth.error] reboot after panic: [AFT1] errID 0x00090886.6bd9286c UE Error(s)
Aug 21 18:30:54 solaris     See previous message(s) for details
Aug 21 18:30:54 solaris ntpdate[175]: [ID 558275 daemon.notice] adjust time server 158.211.134.200 offset 0.350887 sec
Aug 21 18:30:58 solaris xntpd[186]: [ID 702911 daemon.notice] xntpd 3-5.93e Mon Sep 20 15:47:11 PDT 1999 (1)
Aug 21 18:30:58 solaris xntpd[186]: [ID 301315 daemon.notice] tickadj = 5, tick = 10000, tvu_maxslew = 495, est. hz = 100
Aug 21 18:30:59 solaris xntpd[186]: [ID 798731 daemon.notice] using kernel phase-lock loop 0041
Aug 21 18:30:59 solaris last message repeated 1 time
Aug 21 18:31:09 solaris pseudo: [ID 129642 kern.info] pseudo-device: tod0
Aug 21 18:31:09 solaris genunix: [ID 936769 kern.info] tod0 is /pseudo/tod@0

Linuxの例

Aug 26 17:11:52 centos6 postfix/postfix-script[32480]: stopping the Postfix mail system
Aug 26 17:11:52 centos6 postfix/master[32414]: terminating on signal 15
Aug 26 17:11:52 centos6 postfix/postfix-script[32552]: starting the Postfix mail system
Aug 26 17:11:52 centos6 postfix/master[32553]: daemon started -- version 2.6.6, configuration /etc/postfix

ふむ・・・確かに

/etc/rsyslog.confを編集して実現してみた。
参考資料
・Red Hat Enterprise Linux 6導入ガイド :「第20章 ログファイルの表示と管理

さすがにデフォルト出力を変えてしまうと、Linux側のツールでsyslogを処理した場合に問題が生じるので
Solaris互換のログファイルは別ファイルで出力させることにした。

設定を行った「/etc/rsyslog.conf」のサンプルは以下。

$template FacilityTmpl,"%timereported% %HOSTNAME% %syslogtag% [ID %MSGID% %syslogfacility-text%.%syslogseverity-text%]%msg:::sp-if-no-1st-sp%%msg:::drop-last-lf%\n"
mail.*                                         /var/log/solaris-compati.log;FacilityTmpl

その出力例

Aug 26 17:11:52 centos6 postfix/postfix-script[32480]: [ID - mail.info] stopping the Postfix mail system
Aug 26 17:11:52 centos6 postfix/master[32414]: [ID - mail.info] terminating on signal 15
Aug 26 17:11:52 centos6 postfix/postfix-script[32552]: [ID - mail.info] starting the Postfix mail system
Aug 26 17:11:52 centos6 postfix/master[32553]: [ID - mail.info] daemon started -- version 2.6.6, configuration /etc/postfix

「%MSGID%」に具体的な値が出力されず、「-」になってしまうというのは、Linux側の仕様なのかどうなのか???

まぁ、とりあえず、おおむね実現できたのでよしとした。

Orange pi2/Allwinner H3関連のメモ

SoCとしてAllwinner H3を採用しているOrange pi2/Orange pi plusについての開発メモ。

・Allwinner用Linux kernelの総本山
 →Linux-sunxi
・総本山にあるOrange pi関連の資料
  Xunlong Orange Pi 2
  Xunlong Orange Pi Plus
・ビルドに必要らしい.fexのファイル
  https://github.com/vonfritz/sunxi-boards/tree/H3/sys_config/H3
・総本山にあるH3向けビルドガイド
 →H3 Manual build howto
・Allwinner H3のアーキテクチャ名は「sun8iw7p1」らしい

・Orange pi向けだけどBanana Linuxをビルドした話
  [TUTO] How to compile Kernel & Headers (from banana pi github)
  Orange piはAllwinner A20であることに注意

・Banana pi向けDebianの作り方
  https://github.com/igorpecovnik/BananaPI-Debian
  Banana piはAllwinner A20であることに注意

・Banana piの開発元Lemakerのlinux-sunxi
  https://github.com/LeMaker/linux-sunxi

・Orange pi以外のAllwinner H3搭載機 HYH-TBH3
  linux-sunxiでの情報:HYH-TBH3
  STB風のもの
  Aliexpressの販売ページ: /
・Orange pi以外のAllwinner H3搭載機 Tronsmart Draco H3
  メーカページ:Tronsmart Draco H3
  メーカのサポートページ:Category Archives: Tronsmart Draco H3
   SDKやAndroid firmwareがある
   720p用kernelと1080p用kernelがあるのが興味深い
  Linux-sunxiにはまだ情報はない(2015/06/24)

Debian/proxmoxでのmpt-statusdによるRAIDステータスの監視

リモートでやるのが怖くて、実施できていなかったProxmoxのメジャーバージョンアップを実施した。

Debianのメジャーバージョンアップ、ということになるのだが、案の定、失敗。
(アップデートに必要なファイル群が404エラーで取得できなかった)
調査が面倒だったので、さくっと消去して新バージョンで再インストールした。

で、使用しているサーバはLSI Logic系のRAID/SCSIカードを使っているので、mpt-statusdによるRAIDステータス監視が行える。

古いバージョンのときは、以下のような/etc/default/mpt-statusdを書いていた。

# cat /etc/default/mpt-statusd
modprobe mptctl
ID="3 -n"
#

(「modprobe mptctl」を書かないと/dev/mptctlが作られず、mpt-statusがエラーになる)

通常は「ID=”3″」にするのだと思うが、これだと、syncのパーセンテージとかが表示されないという欠点がある。

root@ns5:/etc/init.d# mpt-status -i 3
ioc0 vol_id 3 type IM, 2 phy, 231 GB, state OPTIMAL, flags ENABLED
ioc0 phy 0 scsi_id 9 ATA      WDC WD2502ABYS-1 3B04, 232 GB, state ONLINE, flags NONE
ioc0 phy 1 scsi_id 4 ATA      WDC WD5000AAJS-5 3B01, 465 GB, state ONLINE, flags NONE
#

このため、syncのステータスが表示される「-n」オプション付にすることにしていた。

# mpt-status -i 3 -n
ioc:0 vol_id:3 type:IM raidlevel:RAID-1 num_disks:2 size(GB):231 state: OPTIMAL flags: ENABLED
ioc:0 phys_id:0 scsi_id:9 vendor:ATA      product_id:WDC WD2502ABYS-1 revision:3B04 size(GB):232 state: ONLINE flags: NONE sync_state: 100 ASC/ASCQ:0x11/0x00 SMART ASC/ASCQ:0xff/0xff
ioc:0 phys_id:1 scsi_id:4 vendor:ATA      product_id:WDC WD5000AAJS-5 revision:3B01 size(GB):465 state: ONLINE flags: NONE sync_state: 100 ASC/ASCQ:0xff/0xff SMART ASC/ASCQ:0xff/0xff
scsi_id:0 100%
scsi_id:1 100%
#

同期中のサンプル

# mpt-status -i 3 -n
ioc:0 vol_id:3 type:IM raidlevel:RAID-1 num_disks:2 size(GB):231 state: DEGRADED flags: ENABLED RESYNC_IN_PROGRESS
ioc:0 phys_id:0 scsi_id:9 vendor:ATA      product_id:WDC WD2502ABYS-1 revision:3B04 size(GB):232 state: ONLINE flags: NONE sync_state: 1 ASC/ASCQ:0x11/0x00 SMART ASC/ASCQ:0xff/0xff
ioc:0 phys_id:1 scsi_id:4 vendor:ATA      product_id:WDC WD5000AAJS-5 revision:3B01 size(GB):465 state: ONLINE flags: OUT_OF_SYNC sync_state: 1 ASC/ASCQ:0xff/0xff SMART ASC/ASCQ:0xff/0xff
scsi_id:0 1%
scsi_id:1 1%
#

壊れているときのサンプル

# mpt-status -i 3 -n
ioc:0 vol_id:3 type:IM raidlevel:RAID-1 num_disks:2 size(GB):231 state: DEGRADED flags: ENABLED
ioc:0 phys_id:1 scsi_id:9 vendor:ATA      product_id:WDC WD2502ABYS-1 revision:3B04 size(GB):232 state: ONLINE flags: NONE sync_state: 100 ASC/ASCQ:0x11/0x00 SMART ASC/ASCQ:0xff/0xff
ioc:0 phys_id:0 scsi_id:4 vendor: product_id: revision: size(GB):232 state: MISSING flags: OUT_OF_SYNC sync_state: 100 ASC/ASCQ:0x00/0x00 SMART ASC/ASCQ:0x00/0x00
scsi_id:1 100%
scsi_id:0 100%
#

これで問題ないだろうと思っていたのですが、ステータス変化が無くても2時間おきにメールが・・・

mpt-statusdってどういう仕組みなのか/etc/init.d/mpt-statusdの中身を確認・・・
単純に一定時間間隔でmpt-statusコマンドを実行し、その結果を比較しているだけ、と判明。

        if (mpt-status -i $ID) |grep -q 'state OPTIMAL' ; then
            BADRAID=false
        else
            BADRAID=true
            logger -t mpt-statusd "detected non-optimal RAID status"
        fi

今回、問題となっているのは上記の部分だった。
-nのときは「state: OPTIMAL」と、コロン入りのステータス表示になっているためだった。

なので、下記のように「state: OPTIMAL」を見るように変更することで解決した。

        if (mpt-status -i $ID) |grep -q 'state: OPTIMAL' ; then
            BADRAID=false
        else
            BADRAID=true
            logger -t mpt-statusd "detected non-optimal RAID status"
        fi