foltia サーバ新調 (1)
約1年間 foltia サーバを運用してきましたが、今までのサーバはエンコード能力が低くどうにかしたいという思いがありました。そこで新たに機器を調達し新サーバを構築しました。
今まで使ってみた感想をふまえ、今回はデフォルトの構成を取らず以下の方針をとることとしました。
- / の領域に余裕をもたせる
- LVM を使わない
パーティション構成
具体的には以下のような構成でいってみます。 /dev/sda は 480GB SSD 、 /dev/sdb は 3TB HDD です。
/dev/sda1 /boot /dev/sda2 / /dev/sda3 swap /dev/sda4 /home/foltia/php/tv /dev/sdb1 /home/foltia/backup01
LVM は大変便利ですが、 HDD を取り外して保管するといったことが難しくなります。また、 HDD に障害が起こった際の対処も若干面倒です。( XFS はファイルシステムの縮小ができないことも一因かと思います。)
今回は LVM は使わず、異なるディスクは通常通り別のパーティションとして扱います。その代わり SSD の録画領域のファイルは毎日 cron で保存用の HDD に移動させ、移動後に録画領域からシンボリックリンクを張ります。こうすることで foltia から録画ファイルを参照できるようにします。
ディスクインストール
ディスクインストールですが、通常 foltia で行われるブラウザベースのセットアップウィザードでは、割り当てられる /dev/sda2 の容量に余裕がないのと、オプション選択欄が(それによってどんな処理がなされるのか)わかりにくくて意図通りの結果が得られなさそうなので、完全手動でインストールを行うことにしました。
基本的な操作はfoltia ANIME LOCKER オンラインマニュアル:ハードディスクへの手動インストールに書かれてる通りにいきます。
ダウンロードページから LiveDVD の iso ファイルを取得し、 DVD もしくは USB メモリをブータブルにしておきます。
以下 LiveDVD で起動。
LiveDVD にはイメージファイルが含まれているので、マニュアルに書かれているようにネットワーク経由で取得しなくても構いません。
[root@foltiainstall ~]# ls -lh /home/foltia/php/*.img.xz -rw-r--r-- 1 root root 836M Feb 23 17:20 /home/foltia/php/foltia_ANIME_LOCKER_4012.img.xz [root@foltiainstall ~]# xz -dfc /home/foltia/php/foltia_ANIME_LOCKER_4012.img.xz | dd of=/dev/sda 15101952+0 records in 15101952+0 records out 7732199424 bytes (7.7 GB) copied, 174.943 s, 44.2 MB/s
イメージを /dev/sda にコピーした結果、ふたつのパーティションが作成されました。
[root@foltiainstall ~]# parted /dev/sda -s print Model: ATA SanDisk SDSSDXPS (scsi) Disk /dev/sda: 480GB Sector size (logical/physical): 512B/512B Partition Table: msdos Disk Flags: Number Start End Size Type File system Flags 1 1049kB 337MB 336MB primary ext4 boot 2 337MB 7732MB 7396MB primary ext4
パーティションの拡張
一旦マウントして、ディスク使用率をみてみるとこんな感じです。
[root@foltiainstall ~]# mkdir -p /mnt/sda2 [root@foltiainstall ~]# mount /dev/sda2 /mnt/sda2 [root@foltiainstall ~]# df -h /mnt/sda2 Filesystem Size Used Avail Use% Mounted on /dev/sda2 6.7G 4.1G 2.3G 65% /mnt/sda2 [root@foltiainstall ~]# umount /mnt/sda2 [root@foltiainstall ~]# rmdir /mnt/sda2
foltia 以外にも気軽に使える Linux として遊んだりするにはちょっとパーティションが小さすぎるよねー。ってことで、パーティションの拡張を行います。
[root@foltiainstall ~]# fdisk /dev/sda Welcome to fdisk (util-linux 2.23.2). Changes will remain in memory only, until you decide to write them. Be careful before using the write command. Command (m for help): p Disk /dev/sda: 480.1 GB, 480103981056 bytes, 937703088 sectors Units = sectors of 1 * 512 = 512 bytes Sector site (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk label type: dos Disk identifier: 0xa08f5c01 Device Boot Start End Blocks Id System /dev/sda1 * 2048 657407 327680 83 Linux /dev/sda2 657408 15101951 7222272 83 Linux Command (m for help): d Partition number (1,2, default 2): 2 Partition 2 is deleted Command (m for help): n Partition type: p primary (1 primary, 0 extented, 3 free) e extended Select (default p): p Partiton number (2-4, default 2): 2 First sector (657408-937703087, default 657408): Using default value 657408 Last sector, +sectors or +size{K,M,G} (657408-937703087, default 937703087): +40G Partition 2 of type Linux and of size 40 GiB is set Command (m for help): p Disk /dev/sda: 480.1 GB, 480103981056 bytes, 937703088 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk label type: dos Disk identifier: 0xa08f5c01 Device Boot Start End Blocks Id System /dev/sda1 * 2048 657407 327680 83 Linux /dev/sda2 657408 84543487 41943040 83 Linux Command (m for help): w The partition table has been alerted! Calling ioctl() to re-read partition table. Syncing disks. [root@foltiainstall ~]# e2fsck -f /dev/sda2 e2fsck 1.42.9 (28-Dec-2013) Pass 1: Checking inodes, blocks, and sizes Pass 2: Checking directory structure Pass 3: Checking directory connectivity Pass 4: Checking reference counts Pass 5: Checking group summary information foltiaroot: 148743/451584 files (0.2% non-contiguous), 1122349/1805568 blocks [root@foltiainstall ~]# resize2fs /dev/sda2 resize2fs 1.42.9 (28-Dec-2013) Resizing the filesystem on /dev/sda2 to 10485760 (4k) blocks. The filesystem on /dev/sda2 is now 10485760 blocks long.
調べてみると、いったんパーティションを消して、新しく大きめのパーティションを作りなおして、ファイルシステムのチェックをして、ファイルシステムを拡張する。という心臓によくないような操作方法しかないのね。
swap 領域の作成
次に、 swap 領域として /dev/sda3 の作成。サイズは結局どの程度がいいのかわからないけど、とりあえず 8GiB の指定しました。
[root@foltiainstall ~]# fdisk /dev/sda Welcome to fdisk (util-linux 2.23.2). Changes will remain in memory only, until you decide to write them. Be careful before using the write command. Command (m for help): p Disk /dev/sda: 480.1 GB, 480103981056 bytes, 937703088 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk label type: dos Disk identifier: 0xa08f5c01 Device Boot Start End Blocks Id System /dev/sda1 * 2048 657407 327680 83 Linux /dev/sda2 657408 84543487 41943040 83 Linux Command (m for help): n Partition type: p primary (2 primary, 0 extended, 2 free) e extended Select (default p): p Partition number (3,4, default 3): 3 First sector (84543488-937703087, default 84543488): Using default value 84543488 Last sector, +sectors or +size{K,M,G} (84543488-937703087, default 937703087): +8192M Partition 3 of type Linux and of size 8 GiB is set Command (m for help): p Disk /dev/sda: 480.1 GB, 480103981056 bytes, 937703088 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk label type: dos Disk identifier: 0xa08f5c01 Device Boot Start End Blocks Id System /dev/sda1 * 2048 657407 327680 83 Linux /dev/sda2 657408 84543487 41943040 83 Linux /dev/sda3 84543488 101320703 8388608 83 Linux Command (m for help): t Partition number (1-3, default 3): 3 Hex code (type L to list all codes): 82 Changed type of partition 'Linux' to 'Linux swap / Solaris' Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks.
swap の設定などは後ほど。とりあえずハコだけ作った状態にしています。
録画領域の作成
録画領域 ( /home/foltia/php/tv ) 用として /dev/sda4 を作成します。 LVM にはしていません。ファイルシステムは XFS にしました。
[root@foltiainstall ~]# fdisk /dev/sda Welcome to fdisk (util-linux 2.23.2). Changes will remain in memory only, until you decide to write them. Be careful before using the write command. Command (m for help): p Disk /dev/sda: 480.1 GB, 480103981056 bytes, 937703088 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk label type: dos Disk identifier: 0xa08f5c01 Device Boot Start End Blocks Id System /dev/sda1 * 2048 657407 327680 83 Linux /dev/sda2 657408 84543487 41943040 83 Linux /dev/sda3 84543488 101320703 8388608 82 Linux swap / Solaris Command (m for help): n Partition type: p primary (3 primary, 0 extended, 1 free) e extended Select (default e): p Selected partition 4 First sector (101320704-937703087, default 101320704): Using default value 101320704 Last sector, +sectors or +size{K,M,G} (101320704-937703087, default 937703087): Using default value 937703087 Partition 4 of type Linux and of size 398.8 GiB is set Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks. [root@foltiainstall ~]# mkfs.xfs /dev/sda4 meta-data=/dev/sda4 isize=256 agcount=4, agsize=26136950 blks = sectsz=512 attr=2, projid32bit=1 = crc=0 finobt=0 data = bsize=4096 blocks=104547798, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 ftype=0 log =internal log bsize=4096 blocks=51048, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0
/dev/sdb1 の作成
/dev/sdb は 2TB 超なので、 GPT に対応した parted でパーティションを作成します。
[root@foltiainstall ~]# parted /dev/sdb GNU Parted 2.1 Using /dev/sdb Welcome to GNU Parted! Type 'help' to view a list of commands. (parted) print Error: /dev/sdb: unrecognised disk label (parted) mklabel gpt sdb: (parted) print Model: ATA WDC WD30EFRX-68E (scsi) Disk /dev/sdb: 3001GB Sector size (logical/physical): 512B/4096B Partition Table: gpt Number Start End Size File system Name Flags (parted) mkpart Partition name? []? File system type? [ext2]? xfs Start? 1mib End? -1 (parted) print Model: ATA WDC WD30EFRX-68E (scsi) Disk /dev/sdb: 3001GB Sector size (logical/physical): 512B/4096B Partition Table: gpt Number Start End Size File system Name Flags 1 1049kB 3001GB 3001GB (parted) quit Information: You may need to update /etc/fstab. [root@foltiainstall ~]# mkfs.xfs /dev/sdb1 meta-data=/dev/sdb1 isize=256 agcount=32, agsize=22892708 blks = sectsz=512 attr=2, projid32bit=0 data = bsize=4096 blocks=732566646, imaxpct=5 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 log =internal log bsize=4096 blocks=357698, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0
ここまで LiveDVD からの操作でしたが、ここでシャットダウンを行います。
セットアップウィザードの続き
LiveDVD を取り出し、インストールした foltia を起動させ操作します。
起動時に LAN ケーブルがささっており、 DHCP で IP アドレスを取得できていることを確認します。ここでは 192.168.0.2 だったとします。同一ネットワーク上から http://192.168.0.2 にアクセスし、セットアップウィザードの続きを実行し、ドライバ等をインストールします。アクティベーションやチャンネルスキャンなんかはあとまわしでいいです。
録画先の設定で、マウント先を /dev/sda4 にします。
/etc/fstab の設定
先ほど作成したパーティションが自動的にマウントされるように /etc/fstab を編集します。
[root@foltia ~]# mkswap /dev/sda3 [root@foltia ~]# swapon -a [root@foltia ~]# mkdir -p /home/foltia/backup01 [root@foltia ~]# chown foltia:foltia /home/foltia/backup01 [root@foltia ~]# vim /etc/fstab [root@foltia ~]# cat /etc/fstab # # /etc/fstab # Created by anaconda on Wed May 30 15:49:47 2012 # # Accessible filesystems, by reference, are maintained under '/dev/disk' # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info # LABEL=foltiaroot / ext4 defaults 1 1 LABEL=foltiaboot /boot ext4 defaults 1 2 tmpfs /dev/shm tmpfs defaults 0 0 devpts /dev/pts devpts gid=5,mode=620 0 0 sysfs /sys sysfs defaults 0 0 proc /proc proc defaults 0 0 /dev/sda3 swap swap defaults 0 0 /dev/sda4 /home/foltia/php/tv xfs rw,suid,dev,exec,auto,user,async,inode64 1 2 /dev/sdb1 /home/foltia/backup01 xfs defaults 1 2
たくさんの HDD を繋いだり外したりする場合は、 /dev/sdb1 といったデバイス名ではなく UUID でマウントするようにしたほうがいいかもしれません。
再起動し、正しくマウントされているか確認して完了です。