Upgrade to Pro — share decks privately, control downloads, hide ads and more …

2024_storageJAWS_EBSonLVM_created

snowwhite
March 14, 2024
270

 2024_storageJAWS_EBSonLVM_created

20240314で登壇したEBSでLVMをやってみたという資料です。

snowwhite

March 14, 2024
Tweet

Transcript

  1. 自己紹介 Name: 白"雪姫"(Snowwhite) Corporated: 株式会社ゆめみ Job: ネットワークとセキュリティのお姉さん Profile: 2023年8月入社 元々は、ネットワークをメインに仕事をしており、

    前々職からセキュリティの世界へ、 現在はインフラをメインにSRE・セキュリティを担当 Certificate: SAA/SAPro/ANS/SCS Liked Service: Amazon Inspector Twitter: 白"雪姫"(@yuri_snowwhite) blog: https://kohaku-kageroh.hatenablog.com/
  2. 検証時スペック 本当はroot(/)を作りたいが、作るとKernel Panicを起こして二度と起動しません 検証当時 今回の発表で再検証で利用 OS Amazon Linux Amazon Linux

    2 Instance t2.nano t4g.micro boot disk 8GiB 8GiB Attached EBS Volume 30GiB 30GiB Created LVM /home, /var, /var/log, swap /home, /var, /var/log, swap
  3. ログインしたら、ディスクの状況を確認 [root@ip-172-30-2-70 ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE

    MOUNTPOINT nvme1n1 259:0 0 30G 0 disk nvme0n1 259:1 0 8G 0 disk ├─nvme0n1p1 259:2 0 8G 0 part / └─nvme0n1p128 259:3 0 10M 0 part /boot/efi [root@ip-172-30-2-70 ~]# df -kh Filesystem Size Used Avail Use% Mounted on devtmpfs 169M 0 169M 0% /dev tmpfs 208M 0 208M 0% /dev/shm tmpfs 208M 416K 208M 1% /run tmpfs 208M 0 208M 0% /sys/fs/cgroup /dev/nvme0n1p1 8.0G 1.7G 6.3G 22% / /dev/nvme0n1p128 10M 3.8M 6.2M 38% /boot/efi tmpfs 42M 0 42M 0% /run/user/1000 起動時にはご覧の通り 追加ディスクはマウントされてい ない
  4. パーティションを切るための箱を作る作業です。 [root@ip-172-30-2-70 ~]# fdisk /dev/nvme1n1 Welcome to fdisk (util-linux 2.30.2).

    Changes will remain in memory only, until you decide to write them. Be careful before using the write command. Device does not contain a recognized partition table. Created a new DOS disklabel with disk identifier 0x11e1ea1d. Command (m for help): n Partition type p primary (0 primary, 0 extended, 4 free) e extended (container for logical partitions) Select (default p): p Partition number (1-4, default 1): 1 First sector (2048-62914559, default 2048): Last sector, +sectors or +size{K,M,G,T,P} (2048-62914559, default 62914559): Created a new partition 1 of type 'Linux' and of size 30 GiB. Linuxの認識による物理ディスク 的にはまるっと使うので30GiB 丸々使う様にします。
  5. フォーマットタイプをLVMに変更します。 Command (m for help): t Selected partition 1 Hex

    code (type L to list all codes):8e Changed type of partition 'FAT12' to 'Linux LVM'. Command (m for help): w The partition table has been altered. Calling ioctl() to re-read partition table. Syncing disks. パーティションタイプを LVMに変更します。
  6. ここからは一般的なLVMの作成方式なのでコマンドを入れて PV・VG・LVをそれぞ れ作っていきます。 ・PVの作成 pvcreate /dev/nvme1n1p1 ・VGの作成 vgcreate vg-all /dev/nvme1n1p1

    ・LVの作成 lvcreate -n lv-home --size 10GiB vg-all lvcreate -n lv-var --size 5GiB vg-all lvcreate -n lv-log --size 5GiB vg-all lvcreate -n lv-swap --size 4.9GiB vg-all LVMのパーティションを順次 作っていきます。 また、LVを作る段階で各パー ティションを分けますがヘッ ダー情報等で目一杯は使え ません そのためlogは5GiB確保できませ んでした・・・
  7. 作ったLVMを各種フォーマットします。(今回はext4です) ・パーティションのフォーマット mkfs -t ext4 /dev/vg-all/lv-home mkfs -t ext4 /dev/vg-all/lv-var

    mkfs -t ext4 /dev/vg-all/lv-log mkfs -t ext4 /dev/vg-all/lv-swap ・ラベル付け e2label /dev/vg-all/lv-home /home e2label /dev/vg-all/lv-var /var e2label /dev/vg-all/lv-log /var/log e2label /dev/vg-all/lv-swap /swap ・仮マウントポイント作成 mkdir /swap mkdir /mnt/home mkdir /mnt/var mkdir /mnt/log フォーマットとラベルを作って、マ ウントまで確認します。 マウント mount /dev/vg-all/lv-home /mnt/home mount /dev/vg-all/lv-var /mnt/var mount /dev/vg-all/lv-log /mnt/log mount /dev/vg-all/lv-swap /swap マウント確認 df -kh
  8. ポイント!データのコピーをする 1つ前まででマウントが確認出来ていたら既存のデータをコ ピーすることが大事!! ・マウントポイント外へ移動 cd /root ・swapを作成 dd if=/dev/zero of=/swap/swapfile

    bs=1MB count="4096" chmod 600 /swap/swapfile mkswap /swap/swapfile swapon /swap/swapfile free -m swapoff /swap/swapfile free -m ・データのコピー cp -rp /var/* /mnt/var/ cp -rp /var/log/* /mnt/log/ cp -rp /home/* /mnt/home/ ・データの確認 ls -la /home/ec2-user/ ls -la /mnt/home/ec2-user/.ssh/ homeのパーティションをマウントし 直す関係から、SSHの認証鍵など の権限が正しいことは確認しましょ う!
  9. アンマウントをして、テンポラリのマウントポイントを削除 ・アンマウント umount /mnt/log umount /mnt/var umount /mnt/home umount /swap

    df -kh ・仮マウントポイントを削除 rm -rf /mnt/log rm -rf /mnt/var rm -rf /mnt/home ls -la /mnt/ テンポラリはデータを移管・コピーする ためだったので紛らわしくなりますので 削除。
  10. マウントポイントを新しく作った EBSに切り替える準備と確認をします。 # 念のため設定ファイルをバックアップ cp -rp /etc/fstab /root/fstab.org vi /etc/fstab

    # 変更して保存 diff /etc/fstab /root/fstab.org # マウント確認 mount -a df -kh # 別のターミナルを起動して接続を確認 ssh **** この時、SSHを新しいターミナル等で 起動を行って接続出来ることを確認 しておくと安心できます。 /etc/rd.localに以下を追記 swapon /swap/swapfile swapの有効化を確認 sh /etc/rc.local 確認が出来たら、OSを再起動