12 高级磁盘设置 #
高级系统配置需要特定的磁盘设置。所有常用分区任务都可以用 YaST 完成。要实现块设备的永久设备命名,请使用 /dev/disk/by-id
或 /dev/disk/by-uuid
下的块设备。逻辑卷管理 (LVM) 是一种磁盘分区模式,旨在比标准设置中使用的物理分区更加灵活。它的快照功能方便了数据备份的创建。独立磁盘冗余阵列 (RAID) 提高了数据完整性、性能和容错能力。SUSE Linux Enterprise Server 还支持多路径 I/O(请参见第 17 章 “管理设备的多路径 I/O ”了解细节),并且还提供了使用 iSCSI 作为网络磁盘的选项(请参见第 14 章 “经由 IP 网络的大容量储存:iSCSI”了解 iSCSI 的更多信息)。
12.1 使用 YaST 分区程序 #
使用如图 12.1 “YaST 分区程序”所示的专家分区程序,可以手动修改一个或多个硬盘的分区。可以添加、删除、编辑分区及调整分区大小,或访问软 RAID 和 LVM 配置。
尽管可能在系统运行时对其进行重分区,但发生导致数据丢失的错误的风险很高。尽量避免对已安装的系统进行重分区,在对已安装的系统进行重分区前请始终对数据进行完全备份。
IBM Z 只能识别 DASD 和 SCSI 硬盘。不支持 IDE 硬盘。因此,如果这些设备是第一个识别出的设备,它们将在分区表中显示为 dasda
或 sda
。
YaST /dev/sda
(或 /dev/dasda
)。将分区作为这些设备的一部分列出,如 /dev/sda1
(或相应的 /dev/dasda1
)。此外还会显示硬盘的大小、类型、加密状态、文件系统和安装点以及硬盘的分区。安装点描述分区在 Linux 文件系统树中的位置。
左侧RAID
、卷管理
、加密文件
之类的功能,以及查看包含其他功能的文件系统,例如 Btrfs、NFS 或 TMPFS
。
如果在安装期间运行专家对话框,还会列出并自动选中所有可用硬盘空间。要为 SUSE® Linux Enterprise Server 提供更多磁盘空间,请在列表中自下而上(从硬盘的最后一个分区向上到第一个分区)释放所需空间。
12.1.1 分区类型 #
在 IBM Z 平台上,SUSE Linux Enterprise Server 支持 SCSI 硬盘和 DASD(直接访问储存设备)。虽然可以按照以下介绍的方式对 SCSI 磁盘进行分区,但 DASD 在其分区表中的分区项不能超过 3 个。
每个硬盘都有一个分区表,其中有 4 个项。分区表中的一项对应于一个主分区或一个扩展分区。但只允许有一个扩展分区项。
主分区由指派给特定操作系统的一系列连续的柱面(物理磁盘区域)组成。使用主分区时,限制每个硬盘最多具有 4 个分区,因为超过 4 个分区就不能与分区表相符。这就是使用扩展分区的原因。扩展分区同样是一系列连续的磁盘柱面,但扩展分区本身可以再分为多个逻辑分区。逻辑分区不要求在分区表中有对应的项。换句话说,扩展分区是逻辑分区的容器。
如果需要 4 个以上的分区,请创建一个扩展分区作为第 4 个分区(或第 4 个分区之前的分区)。这个扩展分区应占用全部剩余的可用柱面范围。然后在扩展分区中创建多个逻辑分区。逻辑分区的最大数是 63,与磁盘类型无关。对 Linux 使用哪种类型的分区没有什么关系。主分区和逻辑分区均可正常工作。
如果需要在一个硬盘上创建 4 个以上的主分区,则需要使用 GPT 分区类型。此类型没有主分区数限制,并且还支持大于 2 TB 的分区。
要使用 GPT,请运行 YaST 分区程序,在
中单击相关磁盘名称,并选择 › › 。12.1.2 创建分区 #
要从头创建分区,请选择
,然后选择具有可用空间的硬盘。可以在 选项卡中执行实际的修改:- 并指定分区类型(主分区或扩展分区)。最多可以创建 4 个主分区或 3 个主分区和 1 个扩展分区。在扩展分区内,可以创建多个逻辑分区(请参见
指定新分区的大小。可以选择占用所有可用的未分区空间,或输入自定义大小。
如有必要,选择要使用的文件系统和安装点。YaST 会为所创建的每个分区建议一个安装点。要使用其他装入方法(如按标签装入),请选择
。有关支持的文件系统的更多信息,请参见root
。如果您的设置需要其他文件系统选项,请指定它们。例如,如果您需要永久设备名称,则此操作是必需的。关于可用选项的细节,请参见第 12.1.3 节 “编辑分区”。
单击
应用分区设置并退出分区模块。如果安装期间创建了分区,将返回到安装概述屏幕。
12.1.2.1 Btrfs 分区 #
根分区的默认文件系统为 Btrfs(有关 Btrfs 的更多信息,请参见第 7 章 “通过 Snapper 进行系统恢复和快照管理”和第 1 章 “Linux 中的文件系统的概述”)。根文件系统为默认子卷,它不会列于已创建的子卷列表中。作为默认的 Btrfs 子卷,它可以作为常规文件系统进行装入。
默认的分区设置建议将根分区用作 Btrfs,并在其中包含 /boot
目录。要加密根分区,请务必使用 GPT 分区表类型,而不要使用默认的 MSDOS 类型。否则,GRUB2 引导加载程序可能没有足够的空间供第二阶段的加载程序使用。
您也可以根据系统事件手动或自动创建 Btrfs 子卷快照。例如,对文件系统进行更改时,在更改前后 zypper
会调用 snapper
命令来创建快照。如果您对 zypper
所做更改不满意,而且希望恢复为先前的状态,则此方法非常实用。由于 zypper
调用的 snapper
默认会创建根文件系统的快照,因此最好从快照中排除特定的目录。正因如此,YaST 建议创建以下单独的子卷:
/boot/grub2/i386-pc
、/boot/grub2/x86_64-efi
、/boot/grub2/powerpc-ieee1275
、/boot/grub2/s390x-emu
不能回滚引导加载程序配置。上面列出的目录是架构专属目录。前两个目录位于 AMD64/Intel 64 计算机上,后两个目录分别位于 IBM POWER 和 IBM Z 上。
/home
如果独立的分区中没有
/home
,便会将该目录排除以免在回滚时发生数据丢失。/opt
、/var/opt
第三方产品通常安装到
/opt
下。排除此目录是为了防止在回滚时卸装这些应用程序。/srv
包含 Web 和 FTP 服务器的数据。排除此目录是为了防止在回滚时发生数据丢失。
/tmp
、/var/tmp
、/var/cache
、/var/crash
包含临时文件和超速缓存的所有目录都会排除在快照范围之外。
/usr/local
在手动安装软件时会用到此目录。系统会将该目录排除以免在回滚时卸载这些安装的软件。
/var/lib/libvirt/images
使用 libvirt 管理的虚拟机映像的默认位置。为确保回滚期间虚拟机映像不会替换为旧版本而被排除。默认情况下,此子卷是使用
写入时不复制
选项创建的。/var/lib/mailman
、/var/spool
包含邮件或邮件队列的目录会排除,以免在回滚后造成邮件丢失。
/var/lib/bind
包含 DNS 服务器的区域数据。排除该目录是为了确保回滚后名称服务器仍能运作。
/var/lib/mariadb
、/var/lib/mysql
、/var/lib/pgqsl
这些目录包含数据库数据。默认情况下,这些子卷是使用
写入时不复制
选项创建的。/var/log
日志文件所在的位置。排除该目录是为了在对受损的系统进行回滚后能够对日志文件进行分析。
/var/log
默认会设置 NoCOW 属性,禁止写入时复制,从而改进了性能并减少了重复的块数量。使用lsattr
进行校验:tux >
lsattr -l /var/ /var/log No_COW
由于保存的快照需要更多磁盘空间,建议您为 Btrfs 留出足够的空间。对于包含默认子卷的根 Btrfs 分区,建议的大小为 20 GB。
12.1.2.1.1 使用 YaST 管理 Btrfs 子卷 #
现可使用 YaST
模块管理 Btrfs 分区的子卷。您可以添加新子卷或删除现有子卷。12.1.3 编辑分区 #
在创建新分区或修改现有分区时,可以设置各种参数。对于新分区,YaST 设置的默认参数通常已经足够,不需要任何修改。要手动编辑您的分区设置,请按以下步骤继续:
选择分区。
单击
来编辑分区并设置以下参数:- 文件系统 ID
即使不希望在此阶段格式化分区,仍需要为它指派一个文件系统 ID 来确保正确注册分区。典型值包括
、 、 和 。- 文件系统
要更改分区文件系统,可以单击
,并在 列表中选择文件系统类型。SUSE Linux Enterprise Server 支持多种类型的文件系统。Btrfs 因其高级功能而成为根分区的首选 Linux 文件系统。它支持写时复制功能、创建快照、多设备跨接、子卷和其他有用的技术。XFS、Ext3 和 JFS 是日记文件系统。通过使用在操作期间记录的写进程,这些文件系统能够在系统崩溃后非常快地恢复系统。Ext2 不是日记文件系统,但它适用于较小的分区,因为不需要管理大量磁盘空间。
根分区的默认文件系统是 Btrfs。其他分区的默认文件系统是 XFS。
交换是允许将分区用作虚拟内存的特殊格式。创建大小至少为 256 MB 的交换分区。但是如果用完了交换分区,则考虑向系统添加更多内存而不是添加更多交换空间。
警告:更改文件系统更改文件系统和重格式化分区将不可逆地从该分区删除所有数据。
有关各种文件系统的细节,请参见《储存管理指南》。
- 加密设备
如果激活加密,则将所有数据以加密形式写入硬盘。这可以提高敏感数据的安全性,但会降低系统速度,因为加密需要一些时间。有关文件系统加密的详细信息,请参见Chapter 12, Encrypting Partitions and Files。
- 安装点
指定应将分区装入文件系统树中的哪个目录。请从 YaST 建议中选择,或输入任何其他名称。
- Fstab 选项
指定在全局文件系统管理文件 (
/etc/fstab
) 中包含的各种参数。默认设置对大多数安装已经足够。例如,您可以将文件系统标识从设备名称更改为卷标。在卷标中,可以使用除/
和空格之外的所有字符。要获取永久的设备名称,请使用装入选项SUSE Linux Enterprise Server 中,已按默认启用永久设备名称。
、 或 。在注意:IBM Z:按路径装入由于使用磁盘到磁盘复制进行克隆时,在 IBM Z 上按 ID 装入会产生问题,因此默认情况下,在 IBM Z 上按
/etc/fstab
中的路径装入设备。如果更愿意按标签装入分区,则需要在
文本项中定义一个标签。例如,可以为计划装入/home
的分区使用分区标签HOME
。如果要在文件系统中使用定额,请使用装入选项第 16.3.4 节 “管理定额”。
。必须先执行此操作,才能在 YaST 的 模块中为用户定义定额。有关如何配置用户定额的更多信息,请参见
选择
保存更改。
要调整现有文件系统的大小,请选择分区并使用
。请注意,不能在装入时调整分区大小。要调整分区大小,请在运行分区程序之前卸载相应的分区。12.1.4 专家选项 #
在
窗格中选择硬盘设备(例如 )之后,可以访问 窗口右下部分的 菜单。菜单包含以下命令:- 创建新分区表
该选项帮助您在选定设备上创建新的分区表。
警告:创建新分区表在设备上创建新分区表会从设备中不可逆地删除所有分区及其数据。
- 克隆此磁盘
该选项帮助您将设备分区布局(而不是数据)复制到其他可用磁盘设备上。
12.1.5 高级选项 #
选择计算机主机名(
窗格中树的顶层)后,可以访问 窗口右下部分的 菜单。菜单包含以下命令:- 配置 iSCSI
要通过 IP 块设备访问 SCSI,需要先配置 iSCSI。这会导致主要分区列表中显示附加的可用设备。
- 配置多路径
选择该选项可以帮助您为受支持的大容量储存设备配置多路径增强。
12.1.6 更多分区提示 #
以下部分包含有关分区的一些提示,它们会在您设置系统时帮助您做出正确决定。
注意,不同的分区工具可能从 0
或 1
开始计算分区的柱面。计算柱面数时,应始终使用最后一个和第一个柱面值之间的差,并加上 1。
12.1.6.1 使用交换
#
交换用于扩展可用物理内存。之后,可以使用比可用物理 RAM 更多的内存。2.4.10 之前的内核的内存管理系统需要交换作为安全措施。当时,如果交换中没有两倍大小的 RAM,系统性能将大受影响。这些限制不再存在。
Linux 使用称为“近期最少使用算法” (LRU) 的页面来选择可以从内存移到磁盘的页面。因此,正在运行的应用程序的可用内存更多,其缓存也运行得更为顺畅。
如果某个应用程序尝试分配允许的最大内存,则会发生交换问题。需要了解三种主要情形:
- 无交换的系统
应用程序获取了允许的最大内存。所有缓存均已释放,因此其他所有运行中的应用程序速度下降。几分钟之后,内核的内存不足终止机制会激活,并终止该进程。
- 中等大小交换 (128 MB-512 MB) 的系统
最初,该系统将与无交换的系统一样速度下降。所有物理 RAM 均已分配之后,也将使用交换空间。此时,系统速度变得非常慢,不能从远程运行命令。根据运行交换空间的硬盘的速度,系统可能保持此状态约 10 到 15 分钟,直到内存不足终止机制解决该问题。请注意,如果计算机需要执行“暂挂到磁盘”,则需要一定量的交换。在这种情况下,交换大小应该足够大,可以容纳来自内存的必需数据 (512MB-1GB)。
- 具有大量交换(GB 量级)的系统
在这种情况下,最好不要使用会失控并进行大量交换的应用程序。如果使用此类应用程序,系统将需要许多小时后才能恢复。在该进程中,其他进程可能超时并出错,导致系统处于未定义状态,即使是在终止出错进程之后。这种情况下,请执行硬性计算机重引导,并尝试再次运行它。仅当有应用程序依赖此项功能时,才需要使用大量交换。此类应用程序(如数据库或图形处理程序)通常有一个选项,用于直接使用硬盘空间满足其需要。建议使用此选项,不要使用大量交换空间。
如果系统未失控,但是一段时间之后需要更多交换,可能需要联机扩展交换空间。如果为交换空间准备了分区,请使用 YaST 添加此分区。如果没有可用分区,也可以使用交换文件来扩展交换。交换文件的速度通常低于分区,但与物理 RAM 相比,两者的速度都是极慢的,所以实际差别可以忽略。
要在运行的系统中添加交换文件,请执行以下操作:
在系统中创建一个空文件。例如,如果要在
/var/lib/swap/swapfile
添加交换为 128 MB 的交换文件,请使用命令:mkdir -p /var/lib/swap dd if=/dev/zero of=/var/lib/swap/swapfile bs=1M count=128
初始化此交换文件,命令为
mkswap /var/lib/swap/swapfile
注意:通过mkswap
进行格式化时更改了交换分区的 UUID如果可能,请不要使用
mkswap
重新设置现有交换分区的格式。使用mkswap
重新设置格式将会更改交换分区的 UUID 值。请通过 YaST 重新设置格式(将更新/etc/fstab
),或者手动调整/etc/fstab
。激活交换,命令为
swapon /var/lib/swap/swapfile
要禁用此交换文件,请使用命令
swapoff /var/lib/swap/swapfile
检查当前可用的交换空间,命令为
cat /proc/swaps
请注意,目前这只是临时交换空间。下一次重引导之后,将不再使用它。
要永久启用此交换文件,请将以下行添加到
/etc/fstab
:/var/lib/swap/swapfile swap swap defaults 0 0
12.1.7 分区和 LVM #
从
,通过单击 窗格中的 项目访问 LVM 配置。但是,如果系统上已存在生效的 LVM 配置,则在进入会话的初始 LVM 配置时会自动激活它。这种情况下,包含分区(属于已激活的卷组)的所有磁盘都不能进行重分区。如果某个硬盘上的任意分区正在使用中,则 Linux 内核无法重新读取该硬盘经过修改的分区表。如果系统上已存在有效的 LVM 配置,则不必进行物理重分区。但需要更改逻辑卷的配置。
在物理卷 (PV) 的开始位置,将有关卷的信息写入到分区中。要将这样的分区重用于 LVM 之外的其他用途,最好删除此卷的开始位置。例如,在 VG system
和 PV /DEV/sda2
中,可以通过命令 dd
if=/dev/zero of=/dev/sda2 bs=512 count=1
完成此操作。
用于引导的文件系统(root 文件系统或 /boot
)不能储存在 LVM 逻辑卷上。而应将其储存在通常的物理分区中。
有关 LVM 的更多细节,请参见储存管理指南。
12.2 LVM 配置 #
本节说明配置 LVM 时要执行的特定步骤。如需逻辑卷管理器的总体信息,请参见第 5.1 节 “了解逻辑卷管理器”。
使用 LVM 有时会增加一些风险,例如数据丢失。这些风险还包括应用程序崩溃、电源故障及有问题的命令。在实施 LVM 或重配置卷前,请保存数据。决不要在没有备份的情况下工作。
12.2.1 使用 YaST 配置 LVM #
YaST LVM 配置可以通过 YaST 专家分区程序(请参见第 12.1 节 “使用 YaST 分区程序”)中 窗格内的 项目来访问。使用专家分区程序可编辑和删除现有分区,以及创建需要用于 LVM 的新分区。第一个任务是创建用于向卷组提供空间的 PV:
从
中选择一个硬盘。更改到
选项卡。单击
,并输入该磁盘上 PV 所需的大小。选择
,并将 更改为 。不要装入该分区。重复此过程,直到您在可用磁盘上定义了所有所需物理卷。
12.2.1.1 创建卷组 #
如果系统上不存在卷组,则您必须添加一个(请参见图 12.3 “创建卷组”)。可以通过在 窗格中单击 ,然后单击 来创建其他组。通常一个卷组就已足够。
输入 VG 的名称,如
system
。选择所需的
。该值定义了卷组中物理块的大小。卷组中的所有磁盘空间都是按此大小的块来处理的。通过选择设备,然后单击Ctrl,可同时选择几个设备。
将准备好的 PV 添加到 VG。选择设备时按住选择
使 VG 可用于以后的配置步骤。
如果您定义了多个卷组,且希望添加或删除 PV,请在
列表中选择卷组,并单击 。在以下窗口中,您可以在已选的卷组中添加或删除 PV。12.2.1.2 配置逻辑卷 #
在用 PV 填充卷组后,请定义操作系统应在下一个对话框中使用的 LV。选择当前卷组,然后切换到
选项卡。根据需要 、 LV 以及对 LV ,直到卷组中的所有空间都用完为止。请为每个卷组至少指派一个 LV。单击
,然后完成打开的类似向导的弹出窗口:输入 LV 名称。对于应装入到
/home
的分区,可以使用类似于HOME
的名称。选择 LV 类型。可以为
、 或 。注意:您必须先创建可存储单独精简卷的精简池。瘦配置的最大优势在于,存储于瘦池中的所有瘦卷的大小总和可以超过瘦池本身的大小。选择 LV 条带的大小和数量。如果您只有一个 PV,选择多个条带是没用的。
请选择要在 LV 上使用的文件系统及安装点。
通过使用条带,可以在多个 PV 间分布 LV 中的数据流(条带化)。但是,对卷分段只能通过不同 PV 执行,每个 PV 至少提供卷的空间量。条带的最大数等于 PV 数,其中条带数“1”表示“不分段”。分段仅对不同硬盘上的 PV 有效,否则会降低性能。
YaST 无法在此时验证关于分段的输入是否正确。这里所犯的任何错误只有以后在磁盘上实施 LVM 时才能显现。
如果您已在系统上配置 LVM,则可以使用现有的逻辑卷。在继续前,请将适当的安装点指派给这些 LV。单击
返回 YaST 专家分区程序,并在此完成工作。12.3 使用 YaST 配置软 RAID #
本节介绍创建和配置各种类型的 RAID 所需执行的操作。如果您需要有关 RAID 的背景信息,请参见第 7.1 节 “了解 RAID 级别”。
12.3.1 使用 YaST 配置软 RAID #
YaST 第 12.1 节 “使用 YaST 分区程序”中所述。此分区工具用于编辑和删除现有分区并创建要用于软 RAID 的新分区:
配置可以通过 YaST 专家分区程序完成,如从
中选择一个硬盘。更改到
选项卡。单击
并输入此磁盘上需要的 raid 分区大小。使用
并将 更改为 。不要装入该分区。重复此过程,直到您在可用磁盘上定义了所有所需物理卷。
对于 RAID 0 和 RAID 1,至少需要两个分区,而对于 RAID 1,通常只需要两个分区。如果使用 RAID 5,则至少需要三个分区;RAID 6 和 RAID 10 至少需要四个分区。建议仅使用大小相同的分区。RAID 分区应位于不同硬盘上,以降低由于某块硬盘(RAID 1 和 5)出现问题而导致数据丢失的风险,同时还可以优化 RAID 0 的性能。创建用于 RAID 的所有分区之后,单击
› 以启动 RAID 配置。在下一个对话框中选择 RAID 级别 0、1、5、6 和 10。然后,选择应由 RAID 系统使用的,类型为 “Linux RAID” 或 “Linux native” 的所有分区。未显示交换分区或 DOS 分区。
对于磁盘添加顺序对其而言比较重要的 RAID 类型,您可以使用 A 到 E 的任何一个字母来标记单个磁盘。单击
按钮,选择磁盘,并单击其中一个 按钮(X 表示您想指派给磁盘的字母)。以这种方式指派所有可用的 RAID 磁盘,然后单击 进行确认。您可以使用 或 按钮轻松地对已分类的磁盘进行排序,或者使用 从某个文本文件中添加排序模式。要将以前未指派的分区添加到所选的 RAID 卷中,请先单击该分区,然后单击
。指派所有为 RAID 保留的分区。否则,分区中的空间仍处于未使用状态。指派所有分区之后,单击 选择可用的 。
在最后一步中,设置要使用的文件系统、RAID 卷的加密方法和安装点。单击/dev/md0
设备和专家分区工具中指示为 RAID 的其他设备。
12.3.2 查错 #
查看文件 /proc/mdstat
以确定 RAID 分区是否受损。如果系统出现故障,请关闭 Linux 系统并用以同样方式分区的新硬盘替换出现问题的硬盘。然后重启动您的系统并输入命令 mdadm /dev/mdX --add /dev/sdX
。将“X”替换为您的特定设备标识符。此命令会自动将该硬盘集成到 RAID 系统并进行完全重构建。
请注意,尽管可以在重构建期间访问所有数据,但在 RAID 完全重构建之前,仍然可能遇到一些性能问题。
12.3.3 更多信息 #
位于下列位置的操作指南中提供了软 RAID 的配置说明和更多细节:
/usr/share/doc/packages/mdadm/Software-RAID.HOWTO.html
此外还提供有 Linux RAID 邮件列表,例如 http://marc.info/?l=linux-raid。