มือเตรียมดิสก์ /dev/sdb และตั้งค่า Auto Mount บน AlmaLinux

มือเตรียมดิสก์ /dev/sdb และตั้งค่า Auto Mount บน AlmaLinux

มือเตรียมดิสก์ /dev/sdb และตั้งค่า Auto Mount บน AlmaLinux

Feb 3, 2026

almalinuxlinuxpgsqlPostgreSQLHOSxPXE

PostgreSQL Production Storage Setup on AlmaLinux

คู่มือนี้อธิบายการเตรียมดิสก์ /dev/sdb สำหรับใช้งานกับ PostgreSQL บน AlmaLinux
เหมาะสำหรับระบบ Production โดยคำนึงถึงความเสถียร ความปลอดภัย และการ Auto Mount


Assumptions

  • ระบบปฏิบัติการ: AlmaLinux 8/9
  • ดิสก์ใหม่: /dev/sdb
  • PostgreSQL data directory: /var/lib/pgsql
  • Filesystem: ext4
  • PostgreSQL user: postgres

Step 0: ตรวจสอบดิสก์

lsblk
fdisk -l

⚠️ ตรวจสอบให้แน่ใจว่า /dev/sdb เป็นดิสก์ที่ถูกต้อง เพราะขั้นตอนถัดไปจะลบข้อมูลทั้งหมด


Step 1: สร้าง Partition บน /dev/sdb

fdisk /dev/sdb

ภายใน fdisk:

  • n → new partition
  • p → primary
  • 1 → partition number
  • Enter → ใช้ค่าเริ่มต้นทั้งหมด
  • w → write & exit

ผลลัพธ์:

/dev/sdb1

Step 2: ตรวจสอบ Partition

lsblk
fdisk -l /dev/sdb

Step 3: Format Filesystem

แนะนำ ext4 สำหรับ PostgreSQL Production

mkfs.ext4 -L pgdata /dev/sdb1

Step 4: เตรียม Mount Point

mkdir -p /var/lib/pgsql

หากมีข้อมูลเดิมอยู่ ควร backup ก่อน


Step 5: Mount (ชั่วคราวเพื่อทดสอบ)

mount /dev/sdb1 /var/lib/pgsql
df -h

Step 6: ตั้งค่า Permission สำหรับ PostgreSQL

chown -R postgres:postgres /var/lib/pgsql
chmod 700 /var/lib/pgsql

ตรวจสอบ:

ls -ld /var/lib/pgsql

ควรได้:

drwx------ postgres postgres

7.1 หา UUID

blkid /dev/sdb1

ตัวอย่าง:

UUID="a1b2c3d4-e5f6-7890-abcd-ef1234567890"

7.2 แก้ไข /etc/fstab

vi /etc/fstab

เพิ่มบรรทัด:

UUID=a1b2c3d4-e5f6-7890-abcd-ef1234567890  /var/lib/pgsql  ext4  noatime,nodiratime  0  2

คำอธิบาย Options

  • noatime,nodiratime → ลด disk I/O (เหมาะกับ database)
  • 0 → ไม่ dump
  • 2 → fsck หลัง root filesystem

7.3 ทดสอบ fstab (สำคัญมาก)

mount -a

ต้องไม่มี error ก่อน reboot


Step 8: Reboot และตรวจสอบ

reboot

หลัง boot:

df -h
mount | grep pgsql

Step 9: ใช้งานกับ PostgreSQL

ตรวจสอบว่า PostgreSQL เห็น data directory ถูกต้อง:

sudo -u postgres psql -c "show data_directory;"

ควรได้:

/var/lib/pgsql/...

Production Best Practices (แนะนำ)

  • แยก disk สำหรับ PostgreSQL โดยเฉพาะ
  • ใช้ UUID แทน device name เสมอ
  • ตรวจสอบ I/O:
    iostat -xm 1
    
  • Backup ก่อนแก้ไข disk หรือ fstab ทุกครั้ง
  • พิจารณา LVM หากต้องการขยาย disk ในอนาคต

Optional Enhancements

  • ใช้ LVM + ext4/xfs
  • แยก WAL (pg_wal) ไปอีก disk
  • Mount option เพิ่ม:
    • commit=60
    • barrier=1

Summary

  • /dev/sdb1/var/lib/pgsql
  • Filesystem: ext4
  • Auto mount ด้วย UUID
  • Permission เหมาะกับ PostgreSQL Production

✔ พร้อมใช้งานในระบบ Production อย่างปลอดภัยและเสถียร