第27回 CentOS7.0レポート

7/7にCentOS7がリリースされました。

前回メルマガの原稿を書いた直後のことです。
タイムリーに紹介出来なかったのが悔やまれますが、めげずに今回ご紹介させて頂こうと思います。

CentOSをご存じの方多いとは思いますが、念のためウィキペディアから説明を引用しておきます。

「CentOS(セントオーエス)は、Red Hat Enterprise Linux(以下「RHEL」と呼ぶ)との完全互換を目指したフリーのLinuxディストリビューションである。」

弊社でも、CentOSをよく利用しています。

今後、最新のCentOS7を採用するにあたり、旧バージョンとの違いを把握しておく必要がありましたので、ついでに調べてみました。

今回はCentOSユーザー向けの記事になっております。

まず、CentOSの公式サイト「centos.org」では、CentOS7のリリースノートとして、以下の変更点が発表されています。

●Kernel 3.10.0 へのアップデート
●Linux コンテナーのサポート
●Open VMware Tools と 3D グラフィックスドライバーを標準収録
●JDK のデフォルトが OpenJDK-7 へ変更
●6.5 から 7.0 へのインプレースアップグレード
●Ext4 と XFS に対する LVM スナップショット
●systemd, firewalld, GRUB2 への移行
●デフォルトファイルシステムが XFS へ変更
●iSCSI と FCoE がカーネル実装に変更
●PTPv2 のサポート
●40Gb イーサーネットカードのサポート
●対応ハードウェア上で UEFI Secure Boot を使った構成のインストールをサポート

また、実際CentOS7をインストール&ウェブサーバーを構築して気づいた点をまとめました。

インストールした環境は、さくらVPSです。
さくらVPSでは、いち早くカスタムインストールのメニューに「CentOS7」が用意されていて、簡単にCentOS7を試すことができます。

●CentOS7は64bit版のみ
CentOS6のOSイメージCD/DVDファイルはi386とx86_64の2種類ありましたが、CentOS7.0ではx86_64のみです。

●インストール画面・方法が変更
これまでと違ってデフォルト設定から変更したい項目のみを選んぶ方式になりました。

結果、インストール時に「次へ」をクリックする回数が減ります。

201408

●MySQLからMariaDBへ変更
標準のyumリポジトリからインストールできるDBサーバーが、MySQLからMariaDBへ変更されました。

CentOS7のyumリポジトリを見ると、mysql-serverがなくなって、代わりにmariadbのrpmが配置されています。

MariaDBとは、MySQLのオリジナルコードの作者のMichael “Monty” Wideniusが現在オラクルが所有しているMySQLをフォークしてつくったオープンソースのDBプロジェクト。現在のところMySQLの互換性があります。

1.サーバーrpmのインストール
サーバーrpmのインストールの際は、

# yum install mysql-server

としても、

# No package mysql-server available.

と表示されます。

# yum install mariadb-server

と実行すれば、
mariadb-serverがインストールされます。

2.クライアントのインストール

# yum install mysql
# yum install mariadb

どちらでもmariadbがインストールされます。

●systemdへの移行
リリースノートで「systemdへの移行」と書いてありますが、それによって以下のような変更がありました。

●サービスの起動コマンド
CentOS6までで使用していたSysV系のコマンド

# service サービス名 start/stop/restart/status

がそのまま使えますが、serviceスクリプトの中で、結局systemctlを呼んでいて、

Redirecting to /bin/systemctl start mariadb.service

というメッセージが表示されます。

systemctl start/stop/restart/status サービス名

を使うほうが正しいです。

細かいことですが、serviceスクリプトのパスも
/sbin/service →/usr/sbin/service

になっています。

●自動起動コマンド
同様にCentOS6で使用されていた、自動起動確認のためサービス一覧を表示する
# chkconfig–list サービス名

自動起動を有効/無効にする。

# chkconfigサービス名 on/off

を使用すると、ネイティブなsystemdのサービスは含まれないよという警告が表示されます。

CentOS7では、自動起動確認のためサービス一覧を表示する
# systemctl –full list-unit-files

自動起動を有効/無効にする。
# systemctlサービス名 enable/disable
を使います。

●ロケールの変更

現在のロケールが何になっているか確認したところ、

# locale
LANG=en_US.UTF-8
LC_CTYPE=”en_US.UTF-8″
LC_NUMERIC=”en_US.UTF-8″
LC_TIME=”en_US.UTF-8″
LC_COLLATE=”en_US.UTF-8″
LC_MONETARY=”en_US.UTF-8″
LC_MESSAGES=”en_US.UTF-8″
LC_PAPER=”en_US.UTF-8″
LC_NAME=”en_US.UTF-8″
LC_ADDRESS=”en_US.UTF-8″
LC_TELEPHONE=”en_US.UTF-8″
LC_MEASUREMENT=”en_US.UTF-8″
LC_IDENTIFICATION=”en_US.UTF-8″
LC_ALL=

英語なので日本語のUTF-8を有効にしようとしましたが、CentOS6でロケールを設定していたファイル

/etc/sysconfig/i18n
がない。

ということで、ロケールの設定ファイルが
/etc/sysconfig/i18nから/etc/locale.conf

に変更になっています。

LANG=”en_US.UTF-8″

LANG=”ja_JP.UTF-8″

に変更しました。

●タイムゾーンの変更
タイムゾーンの設定ファイル

/etc/sysconfig/clock

がなくなり、timedatectlコマンドで表示/設定します。

現在のタイムゾーン設定の表示
# timedatectl status

タイムゾーンの設定
# timedatectl set-timezone Asia/Tokyo

設定可能なタイムゾーンの一覧表示は以下のコマンドです。

# timedatectl list-timezones

これまでのSysVinitとsystemdの違いは、このメルマガで紹介するのは無理ですが、こちらの「Linux女子部systemd徹底入門」というスライドシェアにとても順序だてて詳細に説明が載ってましたので紹介させてもらいます。

http://www.slideshare.net/enakai/firewalld-study-v10

●firewalldへの移行
リリースノートに記載されている通り、firewalldへの移行がされていて、標準のfirewallがiptablesからfirewalldに変更になってます。

設定方法は、iptablesとかなり違うのでこのメルマガで紹介するのはちょっと難しいです。。。が、同じく「Linux女子部firewalld徹底入門」にわかりやすい説明が載ってました。

http://www.slideshare.net/enakai/firewalld-study-v10

●ネットワークインターフェイス名について
ネットワークインターフェイス名が変更になっていると書いてある記事が多数ありましたが、さくらのVPSにCentOS7をカスタムインストールした場合は、前と同じく eth0 eth1・・・・でした。

systemdとfirewalldの仕組み、設定をちゃんと理解して、しっかり慣れるのには結構時間がかかりそうだし、勉強が必要かも。というのが率直な感想です。

仕事でCentOS使っている人は、早目にCentOS7の動向もキャッチアップしていきましょう。

オープンソース geek(変人)列伝 バックナンバー