在我们公司,我们使用 Hyper-V(Windows Server 2012)虚拟机管理程序和 VM 来组织数据中心中的公司内部服务。我应该为我们的主要数据库(Postgresql)设置 Ubuntu 12.04 LTS 客户机。我的系统管理员为我提供了一个 SSH 连接 VM(Ubuntu 已经存在)。磁盘是可动态调整大小的 VHDX 文件。XFS 文件系统有很多创建和安装选项。我读过很多关于 XFS 可能性的材料,但它们基本上是所谓的裸机指南(取决于 RAID 和磁盘参数以及物理布局)。我真的不知道哪一个与我的情况相关。特别是两件事让我很困扰:
- 在虚拟机环境中分区对齐重要吗?我是否应该向系统管理员询问物理 RAID 参数(磁盘数量、条带大小)?并根据这些参数设置我的 XFS?
- 分配组 (AG) 和 xfs 并行 I/O 功能据我理解,这个概念是:我们将文件系统分成几部分,如果它们进入两个不同的 AG,FS 可以尝试并行执行两次写入。因为它不是具有实际空间可划分的物理设备,我真的可以通过动态调整大小的 VHDX 实现这一点吗?
因为虚拟化,在我看来它实际上是云计算。我无法保证 VHDX 驻留在何处以及会驻留多长时间(这是我的虚拟机管理程序管理员的工作)。所以,就 Hyper-V 环境中的 DB 存储设置而言,我可能完全看错了问题?如果是这样,您能否推荐我应该查看的主题
答案1
我理解您的后备存储可能会发生变化,并且您可能不了解底层硬件。在虚拟化环境中,以下操作对我来说非常安全:
今天,我的 XFS 创建和挂载选项如下:
mkfs.xfs -f -l size=256m,version=2 -s size=4096 /dev/sdX
其中“sdX”是设备名称。这是一个 256 兆字节日志和一个 4k 扇区大小。
安装选项通常为:
noatime,logbufs=8,logbsize=256k,nobarrier
这些是没有访问时间、没有写入障碍以及修改的日志缓冲区/块大小。
使用现代操作系统,确保您的分区已对齐。使用fdisk
,将显示单位更改为扇区。注意警告:
WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
switch off the mode (command 'c') and change display units to
sectors (command 'u').
RHEL6下正确对齐的分区:
Disk /dev/zd32: 644.2 GB, 644245094400 bytes
13 heads, 12 sectors/track, 8065969 cylinders, total 1258291200 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 8192 bytes
I/O size (minimum/optimal): 8192 bytes / 8192 bytes
Disk identifier: 0x04d26b4d
Device Boot Start End Blocks Id System
/dev/zd32p1 2048 1258291199 629144576 83 Linux