pvsやvgsやlvsコマンドのサイズ表示に現れる < マークの意味

これらのコマンドではデフォルトで --units r オプションを指定したものとしてサイズ表示が取り扱われている模様である。此れは人間に読みやすいよう二進接頭辞の単位に変換してディスク容量を表記する効能があってその際、少数第3位が四捨五入されるのであるが其れが実際の容量よりも小さくなった場合に現れるものと見られる。

$ sudo pvs
  PV             VG             Fmt  Attr PSize   PFree
  /dev/nvme0n1p2 centos_centos7 lvm2 a--  <19.00g    0

現在のディスク容量をバイト単位で表記するとこういう具合である。

$ sudo pvs --units b
  PV             VG             Fmt  Attr PSize        PFree
  /dev/nvme0n1p2 centos_centos7 lvm2 a--  20396900352B    0B

20396900352Byteを二進接頭辞のGiB単位に変換すると18.99609375GiBであって、少数第3位を四捨五入すると19.00GiBである。此れは実際の容量よりも幾許か大きい為にほんとうはも少し小さいサイズであるぞと主張するべく印を出している模様である。

仮想マシンを停止することなくLVMでディスク容量を追加する

OS:CentOS Linux release 7.7.1908
LVM: 2.02.185(2)-RHEL7
VMware Workstaion 15 Pro 15.5.2 build-15785246

既に稼働中の仮想マシンを停止せずにディスク容量を増すよう指令を受け実践するものである。然し乍ら追加したいディスクの種類がIDEとNVMeの場合は稼働中、新たに追加すること能わぬからこういう場合、関係者とマシン停止の機会を何としてでも調整せねばならない。まずは現状のブロックデバイスを把握する。

$ lsblk -i
NAME                    MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sr0                      11:0    1 1024M  0 rom
nvme0n1                 259:0    0   20G  0 disk
|-nvme0n1p1             259:1    0    1G  0 part /boot
`-nvme0n1p2             259:2    0   19G  0 part
  |-centos_centos7-root 253:0    0   17G  0 lvm  /
  `-centos_centos7-swap 253:1    0    2G  0 lvm  [SWAP]

そうしたら仮想マシンにディスクを追加する。

仮想マシンが稼働中であるとIDEとNVMeの仮想ディスクは追加できない

恙無くディスクが追加されたら改めてブロックデバイスを一覧すると新たにsdaというブロックデバイスがあるからこれが先に追加したディスクであろうと見当が付く。

$ lsblk -i
NAME                    MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda                       8:0    0   20G  0 disk
sr0                      11:0    1 1024M  0 rom
nvme0n1                 259:0    0   20G  0 disk
|-nvme0n1p1             259:1    0    1G  0 part /boot
`-nvme0n1p2             259:2    0   19G  0 part
  |-centos_centos7-root 253:0    0   17G  0 lvm  /
  `-centos_centos7-swap 253:1    0    2G  0 lvm  [SWAP]

このあとの手続きは物理ボリューム、ボリュームグループ、論理ボリュームそれぞれの作成である。先ずは追加したブロックデバイス /dev/sda をLVMで扱うために物理ボリュームとして初期化する。

$ sudo pvs
  PV             VG             Fmt  Attr PSize   PFree
  /dev/nvme0n1p2 centos_centos7 lvm2 a--  <19.00g    0

$ sudo pvcreate /dev/sda
  Physical volume "/dev/sda" successfully created.

$ sudo pvs
  PV             VG             Fmt  Attr PSize   PFree
  /dev/nvme0n1p2 centos_centos7 lvm2 a--  <19.00g    0
  /dev/sda       centos_centos7 lvm2 a--  <20.00g    0

/dev/sda が物理ボリュームとして追加されているから引き続き之を元にしてボリュームグループを作成する。ボリュームグループ名である centos_centos7 を用いてボリュームグループを作成した。

$ sudo vgs
  VG             #PV #LV #SN Attr   VSize   VFree
  centos_centos7   1   2   0 wz--n- <19.00g    0

$ sudo vgextend centos_centos7 /dev/sda
  Volume group "centos_centos7" successfully extended

$ sudo vgs
  VG             #PV #LV #SN Attr   VSize  VFree
  centos_centos7   2   2   0 wz--n- 38.99g    0

次に論理ボリュームを追加する。ボリュームグループ centos_centos7 の内、論理ボリューム root の容量を拡張したいからlvextendコマンドでこうである。

$ sudo lvs
  LV   VG             Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root centos_centos7 -wi-ao---- <17.00g
  swap centos_centos7 -wi-ao----   2.00g

$ sudo lvextend -l +100%FREE /dev/mapper/centos_centos7-root
  Size of logical volume centos_centos7/root changed from <17.00 GiB (4351 extents) to 36.99 GiB (9470 extents).
  Logical volume centos_centos7/root successfully resized.

$ sudo lvs
  LV   VG             Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root centos_centos7 -wi-ao---- 36.99g
  swap centos_centos7 -wi-ao----  2.00g

最後にファイルシステムの拡張を実施する。XFSファイルシステムで構成されているから xfs_growfs コマンドで以って拡張する。

$ df -Th
ファイルシス                    タイプ   サイズ  使用  残り 使用% マウント位置
/dev/mapper/centos_centos7-root xfs         17G  1.5G   16G    9% /

$ sudo xfs_growfs /dev/mapper/centos_centos7-root
meta-data=/dev/mapper/centos_centos7-root isize=512    agcount=4, agsize=1113856 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=4455424, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal               bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

$ df -Th
ファイルシス                    タイプ   サイズ  使用  残り 使用% マウント位置
/dev/mapper/centos_centos7-root xfs         37G  1.5G   36G    4% /

これでようやっとディスク容量の拡張が達成された。

.txtでない拡張子のファイルをtext/plainとして扱いたい

OS: CentOS Linux release 7.7.1908 (Core)
httpd-2.4.6-90.el7.centos.x86_64
Internet Explorer 11.719.18362.0

.lstという拡張子の付くテキストファイルをInternet Explorerで表示したときに改行が反映されないという通報を受けて調査を進めたところ、Content-Typeがtext/plainとして扱われていないが為に表示がクシャリとなっている模様である。

Google Chromeでは改行がきっちり表現されていたからInternet Explorer固有の問題であると早合点して、Microsoft Edgeへの移行を進言すべく目論んでいたところ、Microsoft Edgeもやはり表示がクシャリとなってしまったからすっかり計画が狂ってしまった。

拡張子が.txtであれば勝手にtext/plain扱いされて良いけれどもファイル名の変更は受け入れられない情勢である。唯一、Apacheの設定変更のみが許されているのである。それでこうである。

$ sudo vi /etc/httpd/conf/httpd.conf
<FilesMatch "\.lst$">
  AddType text/plain lst
</FilesMatch>

これで拡張子が.lstのファイルもtext/plainとして扱われてInternet Explorerでも改行が反映された。反映されないときは概ねキャッシュが邪魔をしているからCrtl+F5でスーパーリロードするのが宜しい。

AddTypeディレクティブは無闇にセットすると.lst.guroのような拡張子であっても効果を発揮してしまうから本当は SetHandler text/plain を使うのが良いようである。

けれどもどうしてもSetHandlerの設定が反映されなかったので已む無くFilesMatchディレクティブで取り囲んだAddTypeでお茶を濁したものである。

参考:
AddType ディレクティブ

Raspberry Pi 3 に Zabbix をインストールする

Raspberry Pi 3 Model B
OS: Raspbian Buster Lite

先ずは Download and install Zabbix へアクセスしてインストールしたいZabbixのバージョンやOSなどを選択する。そうすると其れに合わせたインストール手順が示されるから此れに従う。データベースにはMySQLを選択した。

$ sudo wget https://repo.zabbix.com/zabbix/4.0/raspbian/pool/main/z/zabbix-release/zabbix-release_4.0-3+buster_all.deb
$ sudo dpkg -i zabbix-release_4.0-3+buster_all.deb
$ sudo apt update
$ sudo apt install zabbix-server-mysql zabbix-frontend-php zabbix-agent

OSインストール直後の状態からZabbixパッケージのインストールを実施すると81にも及ぶパッケージの導入が始まる。

インストールが一段落したら、一先ずrootユーザでMySQLにログインする。パスワードは空っぽうだから何も入力せずにEnterを押下する。そうしてデータベースとユーザを作成する。データベースを作成する際にうっかりして character set utf8 collate utf8_binを忘れたら、データをインポートする段になって ERROR 1071 (42000) at line 165: Specified key was too long; max key length is 767 bytes などとエラーが発生して処理が進まなくなった。

デフォルトでセットされる文字コードのutf8mb4であると1文字あたり最大で4バイトも使用してテーブルのカラムに収まりきらないサイズになるから、此れを抑えるために1文字3バイトのutf8を態々指定する模様である。指示されたとおりにコピー&ペーストすることの肝要さを思い知ったものである。

$ sudo mysql -uroot -p
Enter password:

MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;
MariaDB [(none)]> grant all privileges on zabbix.* to 'zabbix'@'localhost' identified by 'password';
MariaDB [(none)]> quit;

次はZabbixサーバがデータベースに接続するためにユーザのパスワードを記載しておく。

$ sudo vi /etc/zabbix/zabbix_server.conf
DBPassword=password

それからApacheの設定ファイルにあるPHPのdate.timezoneを編集するのであるが、PHP5とPHP7の場合でそれぞれ場合分けをして設定が記載されているから知らずPHP5のほうだけを編集して満足していると、この後にある作業で Time zone for PHP is not set (configuration parameter "date.timezone"). となって立ち往生する。公式の手順に沿うとPHP7がインストールされるからそちら側を弄う必要がある。

$ sudo vi /etc/zabbix/apache.conf
    <IfModule mod_php7.c>
(snip)
        # php_value date.timezone Europe/Riga
        php_value date.timezone Asia/Tokyo
    </IfModule>

$ php -v
PHP 7.3.14-1~deb10u1 (cli) (built: Feb 16 2020 15:07:23) ( NTS )
$ sudo systemctl restart zabbix-server zabbix-agent apache2
$ sudo systemctl enable zabbix-server zabbix-agent apache2
(snip)
Created symlink /etc/systemd/system/multi-user.target.wants/zabbix-server.service → /lib/systemd/system/zabbix-server.service.
Created symlink /etc/systemd/system/multi-user.target.wants/zabbix-agent.service → /lib/systemd/system/zabbix-agent.service.

そうしたらブラウザでZabbixのページにアクセスしてウィザードに従いながら設定をする。

インストール直後の初期状態ではユーザ名:Admin、パスワード:zabbixでサインインする。

さっそくZabbixがサーバのグラフ制作に取り掛かってくれているのであるが、如何せん文字が豆腐状態であるから困る。之を解消せねばならない。Notoを導入してZabbixが採用するフォントとして設定してやれば終いである。

$ sudo apt install fonts-noto-cjk
$ cd /etc/alternatives/
$ sudo ln -sf /usr/share/fonts/opentype/noto/NotoSansCJK-Regular.ttc zabbix-frontend-font

ownCloudのインストール時にMySQLのエラーが表示されて処理がちっとも進まない

ownCloud: 10.3.2
MySQL: 8.0.18

ownCloudをインストールしようとするとこういうエラーメッセージを受け取るようになった。

Error while trying to create admin user: Failed to connect to the database: An exception occured in driver: SQLSTATE[HY000] [2054] The server requested authentication method unknown to the client

どうもMySQL8系からは認証プラグインにcaching_sha2_passwordが標準で採用されるようになり、従来からのmysql_native_passwordから置き換わった模様である。ownCloud 10.3.2はこの流れに未だ対応していない為にエラーとなっているのである。これを避けるために一先ずMySQL接続ユーザの認証プラグインをかつてのmysql_native_passwordへと設定した。

mysql> create user 'ocadmin'@'localhost' identified by 'p@ssw0rd';
mysql> grant all on owncloud.* to 'ocadmin'@'localhost' with grant option;
mysql> select user, plugin from mysql.user where user = 'ocadmin';
+---------+-----------------------+
| user    | plugin                |
+---------+-----------------------+
| ocadmin | caching_sha2_password |
+---------+-----------------------+

mysql> alter user 'ocadmin'@'localhost' identified with mysql_native_password by 'p@ssw0rd' ;
mysql> select user, plugin from mysql.user where user = 'ocadmin';
+---------+-----------------------+
| user    | plugin                |
+---------+-----------------------+
| ocadmin | mysql_native_password |
+---------+-----------------------+

mysql> create database owncloud;

そうして改めてownCloudのインストールを試みると恙無く完了したのでよかった。

参考:
6.4.1.2 Caching SHA-2 Pluggable Authentication