CentOS 7.6でPHP 5.6を扱う

CentOS 7.6ではPHPは5.4が標準

PHP 5.6のEOLは2019年なので残り僅かだが、CentOS 7.6では5.4が標準である。セキュリティ問題はバックポートされているので心配ないが、バージョン番号だけをみてインストール可否をしているパッケージがあるので(たとえばWordpress)、とりあえず5.6にあげておきたい。最新はPHP 7.1ですかね。epelのレポジトリをインストールされていること前提で手順を進めます。

レポジトリをインストール
# rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

ポイント:remiのレポジトリはデフォルトでdisableになっているので利用時は enablerepoする。
PHP5.6がレポジトリにあるか確認
# yum list --enablerepo=remi --enablerepo=remi-php56 | grep php
ずらっとでてくればOK

ではインストール
ポイント:"epelもenablerepoにしている" 依存するライブラリがepelにあるのだ(libmcrypt)
# yum install --enablerepo=epel --enablerepo=remi --enablerepo=remi-php56 php php-opcache php-devel php-mbstring php-mcrypt php-mysqlnd php-phpunit-PHPUnit php-pecl-xdebug php-pecl-xhprof

バージョンアップされていることを確認
# php --version
PHP 5.6.40 (cli) (built: Apr 30 2019 11:35:35) 
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
    with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend Technologies
    with Xdebug v2.5.5, Copyright (c) 2002-2017, by Derick Rethans

ゼンハイザー GSX 1000の7.1chの設定(2021/2更新)

GSX 1000

フォーマットがデバイスにサポートされていません

メーカーFAQのPDFには載っているのだが、日本語ではないのでGoogle検索にうまくひっかからないようだ。ゼンハイザー GSX 1000を用いてスピーカーを7.1chオーディオに構成しようとすると「フォーマットがデバイスにサポートされていません」と表示される。これを回避する手順を記す。自分用メモでもある。

  1. タスクトレイのスピーカーを右クリックして「サウンドの設定を開く」を選択する
  2. 一番下までページダウンして、関連設定にある「サウンドコントロールパネル」を開く
  3. 「サウンド」というコンパネが起動するので、「再生タブ」でHeadset Earphoneが「GSX 1000 Communication Audio」で「規定の通信デバイス」になっていることを確認する
  4. サウンドの「再生タブ」でスピーカーが「GSX 1000 Main Audio」で「規定のデバイス」になっていることを確認する
  5. 「スピーカー」を選択し 「プロパティ」を選択する
  6. スピーカーのプロパティで「詳細」タブを選択し、規定の形式として「16ビット、48000 Hz(DVDの音質)」を選択し「OK」を選択する
  7. サウンドの再生タブで「構成」を選択し、「7.1 サラウンド」を選択して以後の全チェックボックスにチェックを入れて完了させれば7.1chになる

デフォルトではサポート外になってしまう理由

知っておくと賢くなった気になれるので書いておく。

USB Audio Classという規格があり、ドライバーなしで動作するのは1.x系、メーカーからの追加ドライバーが必要なのは2.x系である。後者のメリットは最大転送速度が向上している。GSX1000は前者のUSB1.1で接続しているので、つなげてすぐに音が出る代わりに、デフォルトの24ビットオーディオによる7.1チャネルはオーバーシュートしてしまうのでサポートできない。

したがって、7.1チャネルのサラウンドを有効にする解決策は、デバイスへの信号形式をWin10のデフォルト設定である24ビットオーディオから16ビットオーディオにダウングレード設定させて運用するのだ。

Ryzen7でファイルサーバー兼ovirt-engineを組む(その2)

oVirtって何さ

oVirtはvmware社のvSphereとだいたい同じ位置づけの仮想化統合基盤でOSSである。ESXiに相当するのがoVirt-nodeでvCentreに相当するのがoVirt-engineかな。oVirtを商用サポートしたのがRHEVでoVirt開発のほとんどがRH社員で構成されている。

ああ、そんなこと聞いているんじゃないってことは判っているさ。oVirtは誤自宅で構築できるパーソナルクラウドもできる基盤だよ。しかもサーバー1台でも構築できちゃうんだぜ。

誤自宅のoVirtの構成

今回マザーボードが故障したため、CPUをcore i7-3770KかRyzen7 2700Xにアーキを変更してコア数とメモリが倍に増えた。なんで増強しているかというと、ファイルサーバーの余ったCPUパワーを仮想サーバーに振ることができるからさ。

OSCentOS 7.6
ファイルサーバーNFS / iSCSI / FCP 基本はNFS
管理DBPostgreSQL
ハイパーバイザーKVMベース(KVM + qemu, livbirt, VDSM)
管理ovirt-engine

構築/設定は簡単

具体的な手順はいろいろなサイトにあるので多くは語らないけれど環境だけなら1台のPCで作れるし、管理側のメモリ利用量は4GB程度なので2つ3つくらいのVMは余裕で作れる。

  1. CentOS のインストールと最新化
  2. 内向けDNSにホスト登録 (/etc/hostsにFQDNを書いて頑張ってもよい)
  3. ファイルサーバーとしてnfsを構築&firewall-cmdでポート開放 サービス起動とexportsの設定(2つ必要でVMイメージ保存用とインストールなどで用いるISOイメージ保存用)
  4. ovirtのリポジトリ情報をインストール(2019/5時点の最新は4.3)
  5. ovirt-engineをインストール
  6. engine-setupコマンドで基本構成を組む(自ホストが管理サーバでDBも抱えるように問いに答えるだけ)
  7. 自動で構築開始、PostgreSQLやfirewall-cmdが自動でセットアップされる
  8. 管理WEBから自ホストが仮想サーバーであるとして登録、KVMなどが自動でセットアップされる
  9. 必要ならホストのネットワーク設定を実施する
  10. ストレージドメインとして3で作ったnfsストレージを登録する
  11. イメージデータバックアップ用として別サーバーにnfsを用意してエキスポートドメインとして登録する

Ryzen7 2700X oVirt(qemu)での認識

AMD EPYC OBPB SSBD としてCPUのアーキタイプが登録される。これってEPYCのアーキで例の投機的実行に関する脆弱性対策が2つとも打たれているCPUだよっていう意味だ。コア数がめちゃくちゃ少ないEPYCですかね。それEPYCといわないと思うが、アーキ的には同じなのかね。

逆にこれまでのcore i7-3770Kが速いSandyBridgeではなくWestmareとか認識されていて、coreアーキがスポイルされていたからうれしい限り。うちの管理画面をちょっと見せます。

Ryzen7でファイルサーバー兼ovirt-engineを組む

Ivy-Bridge マザーが動かなくなった

ファイルサーバー兼 oVirt engineのサーバーのマザーが何もしていないのに壊れた。6年動作したので半導体寿命でしょう。BIOS起動時にメモリー認識に失敗するようになり、USBも認識失敗してキーボードも認識しなくなった。メモリーの接点復活などを試みても回復しないのであきらめて新アーキテクチャにトライしようと決めた。

Ryzen7 2700Xってメニーコアでコスパいい

これまではIvy-Bridge core i7-3770Kを殻割して4core 8threadを4.4GHzで動作させていた。今回は殻割はしないけれどRyzen7 2700Xの8core 16threadを常時4.1GHzで動作させる。メモリもDDR4になるので16GBx4 3200MHzで組む。ファイルサーバーとしては盛り過ぎだけれどovirt-engineでなおかつホストサーバーとしても動作させるならいいんじゃないかと思うんだ。

マザーボード選びが難しい

うちのLANは10GbEだ。Ryzen7 2700XはiGPUのようなビデオを内蔵していない。ファイルサーバーなのでRAIDアレイボードもしくはHBAが必要だ。つまるところx8のPCIeが3つほしい。最新のNICだとGen3 x4なのだがX540-T2はGen2 x8なので厄介者だ。

PCIeのポート数が24あるRyzen7 gen2でもハヤリはNVMeでx4を奪ったりするのでPCIeのスロットはx8 を2つ+ x4を1つとか x8 を2つ x1を4つとか貧弱である。物理形状でx16スロットが3つあるのが少ないのと3つ目はGen2 x4とかいいだすのでかなり厳しい。

それなのにGPUにでたばかりのGTX1660を買ってしまった。10GbEのNICの帯域が絶対的に足りない!あとでGPUをx4のGT1030に買い換えようかな。

ハードウェア構成

マザーはPCIe x16のスロットが2本しかないものを購入してしまい初日からつまづいた。買い足したのだが、PCIeスロット3本目はチップセット配下のものしかないようで、Gen2 x4しかなかった。この場合、3本目になにを挿すかだがマザー最下段のため、1スロット幅のものしか挿入できない。結局はX540-T2をいれるしかなかった。

MOTHERASUS PRIME X470-PRO
CPURyzen7 2700X@4.1GHz常用
MEMDDR4 16GB x43200MHz
PCIe #1GTX1660Gen3 x8
PCIe #2ASR71605Gen3 x8
PCIe #3X540-T2Gen2 x4
SSD2.5in SSD 256GB x2RAID0
HDD3.5in HDD 3TB x16RAID60

CentOSでCockpitを導入するとsubscription-managerに登録しろと指摘されるのを解消する

エラーではない

うちのCentOS 7 + oVirt4ではブラウザから様々な設定作業を行うためCockpitが導入されている。ovirt-engineをインストールすると依存関係で一括導入されるのだけれど、yum updateを実行すると

This system is not registered with an entitlement server. You can use subscription-manager to register.

Uploading Enabled Repositories Report
Cannot upload enabled repos report, is this client registered?

といった、何やらサブスクリプションマネージャーで登録しないといけないっぽいメッセージが表示される。これはエラーではなく情報なので気にしなくてもいい。だけれど、毎度毎度出てきてボクの心をざわつかせるので表示を消したいと思う。

手順は2つのファイルを編集してenable=0にするだけである。

# vi /etc/yum/pluginconf.d/subscription-manager.conf
[main]
enabled=0
# vi /etc/yum/pluginconf.d/enabled_repos_upload.conf
[main]
enabled=0
supress_debug=False
supress_errors=False