OwnCloud 10.9.0 へのアップグレード
- 必要な php モジュールをインストールする
$ sudo aptitude install php7.4 php7.4-xml php7.4-intl php7.4-gd php7.4-curl php7.4-zip php7.4-mbstring
- apache2 再起動
$ sudo a2dismod php7.2 $ sudo a2enmod php7.4 $ sudo service apache2 restart
$ sudo aptitude install php7.4 php7.4-xml php7.4-intl php7.4-gd php7.4-curl php7.4-zip php7.4-mbstring
$ sudo a2dismod php7.2 $ sudo a2enmod php7.4 $ sudo service apache2 restart
xen domU で運用している自宅サーバの owncloud を ubuntu 18.04 にアップグレードした。これで全ての xenial を bionic にアップグレード完了。
$ sudo aptitude update $ sudo aptitude upgrade $ sudo apt-get autoremove
$ pg_dump -Fc owncloud > owncloud.dump
$ sudo aptitude purge owncloud-files $ sudo rm -rf /var/www/owncloud/apps $ sudo rm -rf /var/www/owncloud/config $ sudo rm /etc/apt/sources.list.d/owncloud.list
$ sudo aptitude purge postgresql-9.5 postgresql-client-9.5
$ sudo do-release-upgrade : システムのアップグレードが完了しました。 'Y' を選択すると再起動します。 続行する[yN]
$ sudo aptitude install postgresql
$ sudo vi /etc/postgresql/10/main/postgresql.conf listen_addresses = '*' $ sudo vi /etc/postgresql/10/main/pg_hba.conf # IPv4 local connections: host all all 127.0.0.1/32 trust # IPv6 local connections: host all all ::1/128 trust
$ aptitude search php | grep -e '^i' $ sudo aptitude install php-pgsql php-curl php-readline
$ sudo a2enmod php7.2 $ sudo systemctl reload apache2
$ sudo -i # su - postgres $ psql postgres=# CREATE USER a_user WITH PASSWORD 'a_passwd'; postgres=# CREATE DATABASE owncloud TEMPLATE template0 ENCODING 'UNICODE'; postgres=# ALTER DATABASE owncloud OWNER TO a_user; postgres=# GRANT ALL PRIVILEGES ON DATABASE owncloud TO a_user; postgres=# \q $ pg_restore -Fc -d owncloud owncloud.dump
$ curl https://download.owncloud.org/download/repositories/production/Ubuntu_18.04/Release.key | sudo apt-key add - $ sudo sh -c "echo 'deb http://download.owncloud.org/download/repositories/production/Ubuntu_18.04/ /' > /etc/apt/sources.list.d/owncloud.list"
$ sudo aptitude update $ sudo aptitude install owncloud-files $ sudo systemctrl reload apache2
'memcache.local' => '\OC\Memcache\APCu',
$ sudo -u www-data sh -c "echo '7,22,37,52 * * * * php occ system:cron > /dev/null 2>&1' | crontab"
サーバの xen dom0 を ubuntu 18.04 にアップグレードした。16.04 の時と同じように do-release-upgrade した。
$ sudo aptitude update ; sudo aptitude upgrade $ sudo apt-get autoremove $ sudo do-release-upgrade : アップグレードを開始しますか? 3 個のインストール済みパッケージは Canonical によってサポートされなくなりました。ただしコミュニティからのサポートは受けることができます。 6 個のパッケージが削除されます。 204 個の新規パッケージがインストールされます。 518 個のパッケージがアップグレードされます。 合計 384 M をダウンロードする必要があります。 このダウンロードは約 3 分 かかります。 アップグレードをインストールするのに数時間かかることがあります。ダウンロードが完了してしまうと、処理はキャンセルできません。 続行する[yN] 詳細 [d]y : アップグレードを完了するには再起動が必要です。 'Y' を選択すると再起動します。 続行する[yN] y
$ uname -r 4.15.0-70-generic
/etc/default/grub.d/xen.cfg を見ると,XEN_OVERRIDE_GRUB_DEFAULT=1 を設定しなくても xen でブートされるようになっていた
$ cat /etc/initramfs-tools/conf.d/resume RESUME=none $ sudo update-initramfs -u
前回サーバの CPU を i7-3770K に更新してから既に6年以上経っていたことに気付いてしまい,気付いた以上仕方がないので 6年ぶりに CPU をアップグレードすることにした。今回 CPU は大分安くなってきた i9-9900K@3.6GHz,マザーボードは ASRock Z390M Pro4 (安心な日本語説明入り) を買ってきた。そして,前回と同じくそのままではネットワークが使えないことが判明した。orz
マザーボードの ether チップ (I219-V) が ubuntu 16.04 の e1000e ドライバ 3.2.6 だと対応していないのが原因で,最新の 3.4.2.1 に更新すると使えるようになる。前回の時もドライバ更新して対応はできたのだが,カーネルのアップグレードの度にドライバをコンパイルして更新するという面倒くさいことになってしまったため,on board LAN をあきらめてネットワークカードを買ってきたという経緯があった。
しかし,今回 web 検索で DKMS (Dynamic Kernel Module Support) なる機能を発見した。これを使うと,カーネルのアップグレードの際に自動的にドライバをコンパイルして更新してくれるようになる。
$ LANG=C BUILD_KERNEL=4.4.0-142-generic make
# modprobe ptp # insmod /mnt/e1000e-3.4.2.1/src/e1000e.ko # umount /mnt
インストール完了後,恒常的に e1000e ドライバが読み込まれるように設定する。
$ sudo modprobe ptp $ sudo insmod ~/e1000e-3.4.2.1/src/e1000e.ko $ sudo apt-get build-essential
$ sudo rmmod e1000e
$ cd ~/e1000e-3.4.2.1/src $ make $ sudo make install
$ sudo modprobe e1000e
$ sudo modinfo e1000e filename: /lib/modules/4.4.0-142-generic/updates/drivers/net/ethernet/intel/e1000e/e1000e.ko version: 3.4.2.1-NAPI :
dkms でカーネルアップグレード後に自動的にドライバがインストールされるようにする。
$ sudo apt-get install dkms $ sudo cp -r ~/e1000e-3.4.2.1 /usr/src/
PACKAGE_NAME="e1000e" PACKAGE_VERSION="3.4.2.1" BUILT_MODULE_LOCATION=src BUILT_MODULE_NAME[0]="e1000e" DEST_MODULE_LOCATION[0]="/updates" AUTOINSTALL="yes" MAKE[0]="BUILD_KERNEL=${kernelver} make -C src CFLAGS_EXTRA=-DDISABLE_PM" CLEAN[0]="make -C src clean" REMAKE_INITRD=yes
$ sudo dkms -m e1000e -v 3.4.2.1 add $ sudo dkms -m e1000e -v 3.4.2.1 build $ sudo dkms -m e1000e -v 3.4.2.1 install
xen のインストール
$ sudo aptitude install xen-hypervisor-amd64
$ sudo apt-get autoremove
$ pg_dump -Fc owncloud > owncloud.dump
$ sudo aptitude purge owncloud $ sudo rm /etc/apt/sources.list.d/owncloud.list
$ sudo do-release-upgrade : 設定ファイル '/etc/apache2/sites-available/default-ssl.conf' ==> これはインストールしてから (あなたかスクリプトによって) 変更されています。 ==> パッケージ配布元が更新版を提供しています。どうしますか? → N : 廃止されたメジャーバージョン 9.3 既存のクラスタがアップグレードされた後に、postgresql-9.3 および postgresql-client-9.3 パッケージを削除する必要があります。 → <了解> : 設定ファイル /etc/postgresql-common/createcluster.conf の新しいバージョン(/tmp/postgresql-common.4RBMXy) が利用可能ですが、現在インストールされているバージョンは、ローカルで変更されています。変更された設定ファイル createcluster.conf について何を行いたいですか? → パッケージメンテナのバージョンをインストール : システムのアップグレードが完了しました。 'Y' を選択すると再起動します。 続行する[yN]
$ sudo purge postgresql-9.3 postgresql-client-9.3 $ sudo aptitude install postgresql
$ sudo vi /etc/postgresql/9.5/main/postgresql.conf listen_addresses = '*' ←コメントを解除し、''内を * に修正 $ sudo vi /etc/postgresql/9.5/main/pg_hba.conf # IPv4 local connections: host all all 127.0.0.1/32 trust # IPv6 local connections: host all all ::1/128 trust
$ sudo apt-get install linux-generic
$ sudo -i # su - postgres $ psql postgres=# CREATE USER a_user WITH PASSWORD 'a_passwd'; postgres=# CREATE DATABASE owncloud TEMPLATE template0 ENCODING 'UNICODE'; postgres=# ALTER DATABASE owncloud OWNER TO a_user; postgres=# GRANT ALL PRIVILEGES ON DATABASE owncloud TO a_user; postgres=# \q $ pg_restore -d owncloud owncloud.dump
$ curl https://download.owncloud.org/download/repositories/stable/Ubuntu_16.04/Release.key | sudo apt-key add - # echo 'deb http://download.owncloud.org/download/repositories/stable/Ubuntu_16.04/ /' > /etc/apt/sources.list.d/owncloud.list
$ sud aptitude update $ sudo aptitude install owncloud-files
$ sudo vi /var/www/owncloud/config/config.php 'maintenance' => true,
$ sudo aptitude install php php7.0-pgsql php-bz2 php-curl php-gd php-imagick php-intl php-mbstring php-xml php-zip libapache2-mod-php
$ sudo a2enconf owncloud $ sudo service apache2 reload
$ sudo vi /var/www/owncloud/config/config.php 'maintenance' => false,
$ sudo apt-get autoremove $ sudo do-release-upgrade : SSH経由で実行していますが、続けますか? 続行する[yN] y : アップグレードを開始しますか? 続行する[yN] 詳細 [d] y : システムのアップグレードが完了しました。 再起動が必要です アップグレードを完了するには再起動が必要です。 'Y' を選択すると再起動します。 続行する[yN] y再起動後に uname でカーネルを確認してみると
$ uname -r 3.13.0-137-genericなぜかカーネルが古いままになっていた。そこで,
$ sudo apt-get install linux-genericこれでカーネルも最新バージョンになった。
$ uname -r 4.4.0-109-genericxen の balooning を止める設定
GRUB_CMDLINE_XEN_DEFAULT="dom0_mem=512M,max:512M"/etc/xen/xl.conf
autoballoon=0しかる後に update-grub と reboot
$ sudo apt-get autoremoveこの時,1つカーネルを削除する毎に,update-grub 処理が入るので,その度に mac os x や xen domU が入っている全てのパーティションをスキャンしに行って,ものすごい時間がかかってしまった。これを避けるには /etc/default/grub に
GRUB_DISABLE_OS_PROBER="true"を追加するとよい。
$ sudo mount -t msdos /dev/sda1 /mnt $ ls -l /mnt/efi 合計 1 drwxr-xr-x 4 root root 512 7月 9 2011 apple/試しに ubuntu 14.04 を新規インストールしてみたら,確かに rEFIt を使わなくてもそのまま ubuntu を起動することができた。しかし,Xen をインストールしたところ,ACPI BIOS Error というのが出て,CPU のコアが 1つしか認識されなかったり,USB が使えなかったりした。
[ 0.000000] ACPI BIOS Error (bug): A valid RSDP was not found (20140424/tbxfroot-211)
$ lsusb unable to initialize libusb: -99どうやら,ubuntu 14.04 では Xen の UEFI ブートはまだちゃんとサポートされていないらしい (Upstream Linux Kernel will have Xen dom0 EFI support from 3.17-rc1)。当面はMBR 起動で使うことにして, do-release-upgrade でアップグレードすることにした。
$ sudo do-release-upgrade : SSH経由で実行していますが、続けますか? ... 続行する[yN] y : 予備のsshdを開始します... 続けるには [ENTER] キーを押してください : アップグレードを開始しますか?... 続行する[yN] 詳細 [d] y : Configuring libc6... Restart services during package upgrades without asking? <Yes> : 変更された設定ファイル... 設定ファイル /etc/default/xen の新しいバージョンが利用可能ですが、現在インストールされているバージョンは、ローカルで変更されています。 パッケージメンテナのバージョンをインストール : grub-pc を設定しています ... 現在インストールされているローカルバージョンを保持 (GRUB_DISABLE_OS_PROBER の設定の違いのみなので「ローカルバージョンを保持」) : サポートが中止された(あるいはリポジトリに存在しない)パッケージを削除しますか? 続行する[yN] 詳細 [d] y : システムのアップグレードが完了しました。 再起動が必要です無事アップグレードされた
$ uname -a Linux ubuntu 3.13.0-48-generic #80-Ubuntu SMP Thu Mar 12 11:16:15 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
$ sudo xl list Name ID Mem VCPUs State Time(s) Domain-0 0 7878 8 r----- 120.6
XEN_OVERRIDE_GRUB_DEFAULT=1
これまで自宅サーバーを WebDAV で運用していたが,クラウド時代に合わせて,ownCloud を導入してみた。
deb http://download.opensuse.org/repositories/isv:ownCloud:community/xUbuntu_12.04/ /
$ wget http://download.opensuse.org/repositories/isv:ownCloud:community/xUbuntu_12.04/Release.key $ sudo apt-key add Release.key
$ sudo aptitude update $ sudo aptitude install postgresql $ sudo aptitude install php5-pgsql $ sudo aptitude install owncloud
$ aptitude show owncloud パッケージ: owncloud バージョン: 5.0.11-0
$ sudo a2enmod : Which module(s) do you want to enable (wildcards ok)? ssl $ sudo a2ensite Your choices are: default default-ssl Which site(s) do you want to enable (wildcards ok)? default-ssl
SSLCertificateFile /etc/ssl/certs/server.pem SSLCertificateKeyFile /etc/ssl/private/server.key SSLCACertificateFile /etc/ssl/cacert.pem
<Directory /var/www/owncloud/> Order deny,allow deny from all allow from 192.168.1.0/24 allow from xxx </Directory>
$ sudo crontab -l # owncloud: execute cron.php every one minute * * * * * php -f /var/www/owncloud/cron.php > /dev/null 2>&1
$ sudo -i # su - postgres $ psql postgres=# CREATE USER username WITH PASSWORD 'password'; postgres=# CREATE DATABASE owncloud TEMPLATE template0 ENCODING 'UNICODE'; postgres=# ALTER DATABASE owncloud OWNER TO username; postgres=# GRANT ALL PRIVILEGES ON DATABASE owncloud TO username; postgres=# \q
fsync = off # turns forced synchronization on or off
$ sudo service postgresql restart
$ sudo service apache2 restart
https://user_id@host-address/owncloud/remote.php/webdav
# cd /var/www/owncloud # php console.php files:scan --all
$ /Applications/owncloud/Contents/MacOS/owncloud --logfile /path/to/LOGFILE & $ tail -f /path/to/LOG FILE
サーバの CPU を i7 にアップグレードしたが,この CPU は 4コア+HT で,8 個の CPU として認識される。
$ cat /proc/cpuinfo processor : 0 vendor_id : GenuineIntel cpu family : 6 model : 58 model name : Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz : processor : 1 vendor_id : GenuineIntel cpu family : 6 model : 58 model name : Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz : : processor : 7 vendor_id : GenuineIntel cpu family : 6 model : 58 model name : Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz :
このあり余る CPU を dolphin サーバ,orca サーバにどう割り当てたらよいか実験してみた。
|
dolphin サーバの JBoss 起動時間JBoss 起動時間は CPU 数を増やす毎に速くなった。 |
|
大量カルテ読み込み時間
カルテ読み込み時間は CPU 数には無関係だった。 |
|
orca サーバでレセプト作成orca のレセプト作成も CPU 数は関係ないようであった。 |
当院業務では CPU 数による大きな差はないようだった。
とりあえず,dolphin サーバ,orca サーバとも CPU 4個で動かすことにした。
結論:この CPU は当院業務には明らかにオーバースペックである。