今回から4回に渡ってCentOS7の変更点と基本的な構築手順について紹介します。
CentOS6からCentOS7へプラットフォームを変更する場合、まず初めにシステムの起動処理とサービス管理、そしてネットワーク回りの変更点を理解すると良いでしょう。
初回となる今回は、CentOS7の変更点についての内容となりますが、上記の部分について重点的に説明します。
主な変更点 (CentOS6.6 → CentOS7)
64ビット版のみをサポート
従来は32ビット版が用意されていましたが、CentOS7では64ビット版のみがサポートされています。16GBを超えるメモリなどのサポートは64ビット版が必須なので時代の流れに対応したものと言えます。
カーネル3.10を採用
Linuxカーネル3.10.0が採用されており、カーネルの強化に伴うさまざまな仕様、機能がCentOSでも反映、使用できるようになっています。
主な特徴
・テラバイトクラスの大規模メモリへ対応
・OSのスワップメモリを圧縮する技術である「zswap」により、ディスクI/Oを低減し、性能向上を試みる仕組みを搭載
・稼働したままカーネルのパッチ適用が可能
xfsファイルシステムの標準サポート
標準のファイルシステムがext4からxfsになりました。これに伴い、xfsの特長である、16EBのサイズを持つファイルシステムのサポート、8EBのファイルサイズのサポートなど、豊富なメリットが受けられます。
インストーラの改良
インストーラが全面変更され、手順を追うものから必要なものだけを設定していくという直感的なスタイルに変更されました。また、インストール実行中にrootパスワードの設定や一般ユーザの作成を並行してできるなど、操作性も向上しています。
ブートローダの変更
Centos6ではGRUBであったブートローダがGRUB2(GRUB version 2)に変更されました。UEFIセキュアブートをサポート、LVMやRAIDへの対応が強化され、高速なブートも可能になっています。ただし、従来のGRUBとは設定方法がまったく異なるものとなっています。
systemdを採用
サービスを含めたリソース管理が、systemdによるものに全面的に変更されました。プロセスグループによりグループごとにリソースを制限したりすることが可能になっています。サービスの管理も、systemctlによるものに一本化され、chkconfig/serviceなどを用いた従来のスタイルから一変しました。
firewalldを採用
パケットフィルタリングなどを司るNetfilterがfirewalldによるものに全面的に変更されました。ゾーンと呼ばれる管理単位の導入でポリシーの適用が容易になりましたが、その反面iptables/ip6tablesによる従来のスタイルからは一変しました。
サービス関連のコマンド変更の概要
CentOS7で大きく変わった部分のひとつが、システムの起動処理とサービス管理の仕組みです。
従来は、SysVinit/Upstartが利用されていましたが、新しく「systemd」が採用されました。
・起動プロセスがSysVinit/Upstartスタイルからsystemdスタイルに変更されました。
・systemdスタイルへの変更に伴い、サービス制御にサービス制御スクリプト+service/chkconfigではなく、ユニット定義ファイル+systemctlを使うように変更されました。
サービスの自動起動の制御には systemctlのenable/disable サブコマンドを用います。
サービスの手動制御には systemctlのstart/stop/restart/reload サブコマンドを用います。
1 2 3 |
従来 (CentOS6など) httpd自動起動設定 chkconfig httpd on httpd起動 service httpd start |
1 2 3 |
CentOS7 httpd自動起動設定 systemctl enable httpd httpd起動 systemctl start httpd |
また、SysVinit/Upstartにあった問題点が、systemdでは改善されています。
従来のSysVinit/Upstartの問題点
・スクリプトの書き方にシステムの安全性を依存してしまう。
・スクリプトを順番に実行していくので、システム全体の起動に時間がかかる。
・システム起動後の状態変化に応じてサービスを起動・停止する仕組みがない。
・サービスごとにリソース配分を調整するなどの仕組みがない。
新しく採用されたsystemdによる改善点
・設定ファイルにて処理の内容を指定できるようにして、スクリプトの品質に影響を受けないようにする。
・処理を出来るだけ並列実行してシステムの起動時間を短縮する。
・システム起動後の状態変化に応じてサービスの起動や停止を行えるようにする。
・制御グループ(cgroups※)単位でリソース配分やアクセス権の範囲を決められるようにする。
※cgroupsとは
control groupsの略でプロセスグループごとにCPUやメモリ・ディスクI/Oなどの利用を制限できるLinuxカーネルの機能です。
システム稼働中に設定変更を行うことができ、OSの再起動を行うことなく資源の割り当てを動的に行う事が出来ます。
ネットワーク関連のコマンド変更の概要
続いてこちらも大きな変更箇所と言えるネットワーク関連での変更ポイントについてです。
ネットワークインターフェース(NIC)の設定管理は、NetworkManagerサービスで行うように変更されました。
また、サーバ上でファイアウォールを稼働させる場合、iptablesを使ったフィルタを実装するのが一般的でしたが、新たなファイアウォールとしてfirewalldというのが実装されています。
NetworkManagerの特長
CentOS6までは/etc/sysconfig/network-scripts配下のifcfg-eth*ファイルを直接編集することで設定を変更していましたが、CentOS7では、NetworkManagerに付属する「nmtui」と「nmcli」コマンドを使用した変更方法が奨励されています。
最もわかりやすいのはnmtuiで、以前のsystem-config-network(setup)の代替となるコマンドです。これを実行するとGUI経由でネットワーク周りの変更を実施することが可能です。
Firewalldの特長
Firewalldは、Dynamic Firewall Manager と呼ばれています。
従来のCentOSが採用していたiptables/ip6tablesでは、パケットフィルタリングのルールを変更するとサービスの再起動が必要でした。
そのため再起動の間は、いったんパケットフィルタリングのルールが無効になることから、通信が途絶えたり、許可すべき通信が拒絶されるなどの原因となっていました。
こうした問題を解決するため開発されたFirewalldは、設定を変更してもサービスを再起動する必要がありません。
Firewalldとは
Firewalldは、Linux内部において、NICポートごとに仮想的なファイアウォールを設置する機能を提供します。
また事前にゾーンというものを定義し、そのゾーンに対して許可するサービスを定義します。そして定義したゾーンをLinuxサーバ上のNICと紐付けを行うという方法で設定していきます。
今回はCentOS7の主な変更点とサービス/ネットワーク関連の変更についての概要を紹介しました。
2回目となる次回は、今回紹介したサービス/ネットワーク関連について、各コマンドの説明を交えながら詳しく紹介したいと思います。
それではまた。