自宅鯖で深層学習の学習環境を整えようと四苦八苦していて、私が主に使っているCentOS7に構築したkvm環境上のUbuntu18.04にNVIDIAのドライバやtensorflowをインストールするところまでやったわけだが。
結局kvmではビデオカードを仮想環境が使うとホストで使えなくなるとかいろいろ制約があってうまく行かないことがわかったので、ホストとしてUbuntuを入れることに方針を切り替えた。
自宅鯖は完全に実験機なのでデータとか気にする必要がないので、あっさりと上書きインストールができる。
さて、一旦は18.04をインストールしてみたのだが、すぐにアップデートのお誘いが出るなど、世の中20.04へ移行しているんだろうなと言う感じ。保守的なサーバー用途で使う人が多いCentOS(red hat)にくらべUbuntuはFedoraと同じような立ち位置のデスクトップ環境メインのLinuxっぽいので、安定環境というよりは常に最新にアップデートさせる方向なんだろうと思う。
確かに18.04は何かと古い気はするので20.04を入れていく。
CentOSでは基本最小構成でインストールするようにしているが、不慣れなUbuntuで環境構築をうまくできる自信がないので、一般インストールで、visualのサードパーティをインストールするオプションまで入れて完全おまかせコースとしておく。
おかげでインストールには結構時間がかかった。
インストールが完了して再起動するとまあ普通にデスクトップ環境が立ち上がった。
visualの追加インストールってNVIDIAのドライバも入れてくれてるのかな?ということでターミナルで確認
$ nvidia-smi Sun Apr 25 12:09:38 2021 +-----------------------------------------------------------------------------+ | NVIDIA-SMI 450.119.03 Driver Version: 450.119.03 CUDA Version: 11.0 | |-------------------------------+----------------------+----------------------+ | GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. | | | | MIG M. | |===============================+======================+======================| | 0 GeForce GT 710 Off | 00000000:01:00.0 N/A | N/A | | 50% 39C P0 N/A / N/A | 213MiB / 980MiB | N/A Default | | | | N/A | +-------------------------------+----------------------+----------------------+ +-----------------------------------------------------------------------------+ | Processes: | | GPU GI CI PID Type Process name GPU Memory | | ID ID Usage | |=============================================================================| | No running processes found | +-----------------------------------------------------------------------------+
入ってる。CUDAバージョンも最新の11.0が入っちゃってる。これはもしかしたらあとでバージョンの適合性に問題が出る可能性があるかもな。
基本ヘッドレスサーバとして使いたいので、sshとかvncがどうなっているんかなと思って確認したが、どっちも使えるようにはなっていない模様。これはやはりデスクトップ環境を基本としている思想の違いなんだろうな。
$ vncserver -list vncserver: コマンドが見つかりません $ ssh 192.168.1.100 -l kuro ssh: connect to host 192.168.1.100 port 22: Connection refused
早速インストール
$ sudo apt install openssh-server $ sudo systemctl status ssh ● ssh.service - OpenBSD Secure Shell server Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled) Active: active (running) since Sun 2021-04-25 12:41:42 JST; 2min 9s ago Docs: man:sshd(8) man:sshd_config(5) Main PID: 4750 (sshd) Tasks: 1 (limit: 9416) Memory: 1.2M CGroup: /system.slice/ssh.service └─4750 sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups (略) $ ssh 192.168.1.100 -l kuro kuro@192.168.1.100's password: Welcome to Ubuntu 20.04.2 LTS (GNU/Linux 5.8.0-50-generic x86_64) * Documentation: https://help.ubuntu.com * Management: https://landscape.canonical.com * Support: https://ubuntu.com/advantage 0 updates can be installed immediately. 0 of these updates are security updates. Your Hardware Enablement Stack (HWE) is supported until April 2025. The programs included with the Ubuntu system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law.
これでsshはOK。
さて、vncの方はというと実はvncサーバはUbuntuにも最初から入っている模様。
まず、設定のアプリを開き、共有タグの中のスライドスイッチをオンにして、画面共有をアクティブに切り替える。
その上で、
$ gsettings set org.gnome.Vino require-encryption false
こうすることでリモートアクセスも有効になる。どうやらVinoというリモートアクセスサーバを使っているらしい。
その際ポートは自動で5900となるようだ。ポートをどうやって変更するのかはわからない。
Ubuntuはデフォルトではファイヤウォールも有効となっていないので、この状態でアクセス可能なはずだ。
設定>共有の中にリモートアクセスという項目が追加されている。
追記
Ubuntuのインストール状態でCUDAはインストールされてなかった。nvidia-smiでCUDA Version: 11.0となっているのは11.0まで対応しているよ!ってことらしい。
Vinoはユーザがログインした状態でないとリモートからログインできないという仕様らしく、ヘッドレスサーバとしては使い勝手が悪い。また、ネットワークの負荷が高いようで、動作はかなりもっさりとした感じでイマイチだな。やはりUbuntuはローカルデスクトップで使う前提なんだろうか。