このページではCentOS6以前の旧バージョンとCentOS7では何が違うのかをまとめてお伝えした。
かなり大きく変わっているため、戸惑うことも多いはずだ。参考にしていただければ幸いだ。
目次
- 1 CentOSそのもののアップデート
- 2 カーネルがバージョン3へアップグレード
- 3 ブートローダがGRUB2へアップ
- 4 systemdによるinitの置き換え
- 5 デフォルトのファイルシステムがext4からxfsへ
- 6 chkconfigの事実上廃止とsystemctl
- 7 journalctlへの移行
- 8 iptablesとそのフロントエンドのfirewalld
- 9 net-toolsを非推奨iproute2へ
- 10 MySQLからMariaDB
- 11 chronydの採用
- 12 GUI部分ではGnome3へ移行
- 13 timedatectlコマンド
- 14 localectlコマンド
- 15 hostnamectl コマンド
- 16 nmcliコマンド
CentOSそのもののアップデート
CentOSの特徴として長期サポートという点があげられる。
10年もコミュニティーによるサポート期限が設けられている。管理者や入門者の方にとって長期的で安定したLinuxディストリビューションというのは非常にありがたい存在だろう。
しかし長期サポートの恩恵を受けつづけていると、メジャーバージョンアップの際自分が浦島太郎のような状態になってしまっていることに気づくことになる。
このページではCentOS6とCentOS7の相違点をあげることにする。CentOS6とCentOS7での変更点は非常に多い。CentOS7で一気にモダンなLinuxディストリビューションへと変貌している。
CentOS7を全体で見ると、今まで設定ファイルを手動で変更を加えてきたものが、コマンドユーティリティ経由で変更するようになっているところが目立つ。
設定ファイルを半自動で安全に変更できる反面、コマンドユーティリティを一から覚えるため、学習コストがかかるというのが難点だ。
どのみちサポート期限が長いので、腰をすえて、慣れてゆこう。
カーネルがバージョン3へアップグレード
カーネルは言わばOSの頭脳にあたる部分であり中核といえる。CentOS6では2.6系を採用していたがCentOS7からは3.x系を採用することになった。これにより、デバイスドライバのサポートが増えるなどの恩恵や新機能の導入が見込めることになった。
現状最先端ディストリビューションは4.x系をサポートしているものが多いが、CentOSは枯れたパッケージをチョイスしている。
ブートローダがGRUB2へアップ
BIOSの他にUEFIのサポートとGPTへのサポートが大きな目玉機能と言える。
他「/boot/grub/grub.conf」などの設定ファイルは直接編集せず、「grub-mkconfig」を使用して機械的に生成するようになった。
systemdによるinitの置き換え
これがもっとも大きな変更のひとつだろう。たいていの人が、「え、本当に?」となるのがこの部分だ。
CentOS6ではinitとして「Upstart」をサポートしていたが、よりモダンな「systemd」へ移行された。
シェルスクリプトではなく独自の書式の設定ファイルを読み込んで各種サービスを起動するようになった。
デフォルトのファイルシステムがext4からxfsへ
スケーラビリティの関係上からデフォルトのファイルシステムが「ext4」から「xfs」へ変更された。
しかし従来通りのインストール時やフォーマット時にext4の選択肢は残されている。
chkconfigの事実上廃止とsystemctl
従来の「chkconfig」が事実上廃止され「systemctl」コマンドでサービスの起動などを制御することになっている。
# systemctl start httpd
などとしてサービスをスタートする。
起動時に有効にしたい場合は
# systemctl enable httpd
とする。
journalctlへの移行
ログを管理するシステムとして「rsyslogd」と平行して「journald」サービスが動作している。将来的にはjournaldによるログ管理へ移行するだろうと思われる。Fedoraなどは既にjournaldへ本格的に移行している。CentOS7でjournaldに移行したい場合は
# mkdir /var/log/journal
とするとログが残るようになる。
ログなどを参照するときは専用のコマンドである「journalctl」を使用する。
サービス個々のログを見たいときは、次の通りだ。
# journalctl -u httpd
とすると閲覧できる。
# journalctl -u httpd -f
「-f」を引き渡すと「tail -f」と同じ効能が得られる。
iptablesとそのフロントエンドのfirewalld
ファイアーウォールを管理する仕組みとして「firewalld」が導入された。「iptables」のフロントエンドといえるがサービスとして同時稼動はできない。「firewall-cmd」コマンドにより管理することになる。
NIC事にフィルタを設けパケットフィルタリングができるようになっている。
現状を確認するには、
# firewall-cmd --list-all
としてみよう。
enp0s3はパブリックゾーンに属し「dhcp6-client」と「ssh」がサービスとして許可されている。ほか443/tcpポートが開放されている状態となっている。
net-toolsを非推奨iproute2へ
従来の「ifconfig」などのコマンドが非推奨になった。これからはiproute2の「ip」コマンドなどを使用することになる。
# ip a
MySQLからMariaDB
データベースの話。
OracleがMySQLを取り込んだため、今後もMySQLをオープンでやっていくかが未知数になった。
CentOS7ではデフォルトでMariaDBを採用している。
よりオープンな体制をとるために「MySQL」から「MariaDB」へ標準が変わることになった。ほとんどMySQLと中身は変わらないが、オープンソースを保ちそうな感が違う。
chronydの採用
「ntpd」にかわって採用されたのが「chronyd」である設定する事柄自体はntpdとあまり差はない。極端に意識することはないだろう。
GUI部分ではGnome3へ移行
デスクトップ環境を使用する場合「Gnome3」が採用されていることに注意しよう。デフォルトではクラシックモード設定になっている。
timedatectlコマンド
従来の「date」コマンドよりも詳細な情報がえられる、ほか情報の変更もこのコマンドで行うことが出来る。
# timedatectl
とすると従来の「date」コマンドよりも詳細な情報が得られる。
localectlコマンド
ロケールの設定や確認をするための専属のコマンド「locale」コマンドの強化版だと思えばいい。状態を把握するには
# localectl status
hostnamectl コマンド
ホスト名を変更する専属のコマンドとなっている。
# hostnamectl set-hostname <ホスト名>
とすると、ホスト名を変更できる。
nmcliコマンド
従来は「/etc/sysconfig/network-script/ifcfg-<インターフェイス名>」をエディタで開き編集していたが、CentOS7からはこのコマンドで機械的に編集するようになっている。
ipv4アドレスを「192.168.12.19」サイダー形式で「24」を指定、デフォルトゲートを「192.168.12.1」として指定
# nmcli connection modify enp0s3 ipv4.addresses "192.168.12.19/24 192.168.12.1"
まとめ
このページではCentOS6以前の旧バージョンとCentOS7では何が違うのかをまとめてお伝えした。結構中身が変わっていることがわかっていただけたと思う。
参考にしていただければ幸いだ。