Rasool Cool 发布的文章

在某些情况下,你需要映射存储 LUN(逻辑单元号)、块设备、LVM(LV 和 VG 名称)和文件系统(FS)信息以进行文件系统扩展或灾难恢复(DR)操作。

这是大多数 Linux 管理员的例行活动,我们通常使用一些脚本来显示针对 SAN LUN 的块设备映射,然后我们将手动添加 LVM 和文件系统信息来完成操作。

今后,你无需手动干预此活动,因为这些信息可以通过 Shell 脚本进行映射,如下所示。

参考以下类似文章:

在 Linux 中映射 LUN、磁盘、LVM 和文件系统的 Shell 脚本

这个 Shell 脚本可帮助你识别哪些 SAN 磁盘映射到 Linux 上的哪些块设备、LV、VG 和文件系统。

请注意: 我们排除了 sda 磁盘,因为这是操作系统(OS)盘,它有多个分区。

vi block_device_mapping_with_LUN_FS_LVM.sh
#!/bin/bash
for bdevice in `lsblk | grep disk | awk '{print $1}' | grep -v 'sda'`; do
    for mpoint in `lsblk /dev/$bdevice | grep lvm | awk '{print $NF}'`; do
        LVM_INFO=`lvs -o +devices | grep -i $bdevice | awk '{print $1,$2}'`
        LUN_ID=`lsscsi --scsi | grep $bdevice | awk '{print $NF}'`
        echo "$bdevice --> $mpoint --> $LVM_INFO --> $LUN_ID"
    done
done

设置 block_device_mapping_with_LUN_FS_LVM.sh 文件的可执行权限。

chmod +x block_device_mapping_with_LUN_FS_LVM.sh

最后运行脚本查看结果。

sh block_device_mapping_with_LUN_FS_LVM.sh

注意: 在上面的输出中,设备 sdb 不会显示任何 LUN 信息,因为它是从 VMWare 端添加的虚拟磁盘,没有任何 LUN。其他 3 块磁盘是从存储映射的,这就是为什么可以看到 LUN 信息。

如果你想即时运行上述脚本,请使用下面的一行脚本。

for bdevice in `lsblk | grep disk | awk '{print $1}' | grep -v 'sda'`; do for mpoint in `lsblk /dev/$bdevice | grep lvm | awk '{print $NF}'`; do LVM_INFO=`lvs -o +devices | grep -i $bdevice | awk '{print $1,$2}'`; LUN_ID=`lsscsi --scsi | grep $bdevice | awk '{print $NF}'`; echo "$bdevice --> $mpoint --> $LVM_INFO --> $LUN_ID"; done; done
sdb --> [SWAP] --> swap2lv swapvg --> -
sdc --> /appserver --> appserver_lv appserver_vg --> 360000670000415600477312020662021
sdd --> /data --> data_lv data_vg --> 360000670000415600477312020662022
sde --> /backup --> backup_lv backup_vg --> 360000670000415600477312020662023

总结

在本教程中,我们向你展示了如何在 Linux 上检查 SAN 提供的 LUN 以及底层操作系统磁盘、LV 名称、VG 名称和关联的文件系统。

如果你有任何问题或反馈,请随时在下面发表评论。

(题图:MJ/f5da2270-4e5a-4b2c-8998-fae974214384)


via: https://www.2daygeek.com/map-san-lun-physical-disk-filesystem-lvm-info-linux/

作者:Rasool Cool 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

对于某些需求,你可能需要找到映射到逻辑单元号(LUN)和文件系统(FS)的块设备,以进行文件系统扩展或灾难恢复(DR)活动。

当你管理更大的基础设施时,类似的活动可能会经常发生。假设有超过 1000 台服务器托管各种应用。

参考以下类似文章:

在本文中,我们将向你展示如何在 Linux 中映射物理磁盘、存储 LUN 和文件系统(FS)。

将物理磁盘映射到 Linux 中的存储 LUN 和文件系统的 Shell 脚本

这个小 shell 脚本可帮助你识别哪些 SAN 磁盘映射到 Linux 上的哪些块设备和文件系统。

vi block_device_mapping_with_LUN_FS.sh
#!/bin/bash
for lunmap in `lsblk | grep disk | grep ^s | awk '{print $1}'`; do
   for mpoint in `lsblk /dev/$lunmpa | grep lvm | awk '{print $NF}'`; do
      echo "$lunmap --> $mpoint --> $(smartctl -a /dev/$lunmap | grep "Logical Unit id" | awk -F":" '{print $2}')"
   done
done

设置 block_device_mapping_with_LUN_FS.sh 文件的可执行权限。

chmod +x block_device_mapping_with_LUN_FS.sh

最后运行脚本查看结果。

sh block_device_mapping_with_LUN_FS.sh

注意: 在上面的输出中,设备 sda 不会显示任何 LUN 信息,因为它是从 VMWare 端添加的虚拟磁盘,没有任何 LUN。其他 3 个磁盘是从存储映射的,这就是我们能够看到 LUN 信息的原因。

如果你想即时运行该脚本,请使用下面的一行脚本。

for lunmap in `lsblk | grep disk | grep ^s | awk '{print $1}'`; do 
    for mpoint in `lsblk /dev/$lunmpa | grep lvm | awk '{print $NF}'`; do 
        echo "$lunmap --> $mpoint --> $(smartctl -a /dev/$lunmap | grep "Logical Unit id" | awk -F":" '{print $2}')"
    done
done
sda --> /
sda --> /usr
sda --> /opt
sda --> /tmp
sda --> /var
sda --> /home
sdb --> /data -->      0x3600d0230000000000e1140463955737c
sdc --> /app -->      0x3600d0230000000000e114046395577cd
sdd --> /backup -->      0x3600d0230000000000e11404639558cc5

总结

在本教程中,我们向你展示了如何在 Linux 上检查 SAN 提供的 LUN 以及底层操作系统磁盘和关联的文件系统。

如果你有任何问题或反馈,请随时在下面发表评论。

(题图:MJ/09a00c62-f6a1-48b0-bf43-dc1bcb3c7861)


via: https://www.2daygeek.com/map-san-lun-physical-disk-filesystem-linux/

作者:Rasool Cool 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

通常 Linux 系统会默认引导系统进入最新安装的内核,并保留最新的 3 个 Linux 内核引导条目。

假设你已经执行了 yum update,并且新的内核作为更新的一部分已经安装了。这时,由于这个新内核与应用程序不兼容,它会阻止应用程序启动。

想要暂时解决这个问题,你应该还是引导系统进入旧内核。

在本文中,我们将向您展示如何使用 grubby 工具将旧的内核版本设置为 RHEL 8 和 RHEL 9 系统上的默认版本。

grubby 是什么

grubby 是一个命令行工具,用于在多个架构上更新和显示引导加载配置文件的信息。

检查当前引导的内核

你可以使用如下的 uname 命令来检查当前引导/加载的内核。

# uname -r
4.18.0-477.13.1.el8_8.x86_64

列出默认内核

使用 grubby 验证默认内核版本,运行以下命令:

# grubby --default-kernel
/boot/vmlinuz-4.18.0-477.13.1.el8_8.x86_64

要获取当前默认内核的索引号,请运行以下命令:

# grubby --default-index
0

检查已安装的内核

要检查已安装的内核的列表,请运行以下命令:

我们来解释以下的输出信息。最新安装的内核的条目索引0,接下来的 较旧的内核 版本将会是 1,第二个更旧的内核版本将会是 2,而 救援内核 的条目索引将会是 3

# grubby --info=ALL | egrep -i 'index|title'
index=0
title="Red Hat Enterprise Linux (4.18.0-477.13.1.el8_8.x86_64) 8.8 (Ootpa)"
index=1
title="Red Hat Enterprise Linux (4.18.0-425.19.2.el8_7.x86_64) 8.7 (Ootpa)"
index=2
title="Red Hat Enterprise Linux (4.18.0-425.13.1.el8_7.x86_64) 8.7 (Ootpa)"
index=3
title="Red Hat Enterprise Linux (0-rescue-13iu76884ec5490puc67j8789s249b0c) 8.2 (Ootpa)"

更改默认内核引导条目

我们可以用两种方式,使用 “内核文件名”,或者使用 “内核条目索引”。我们设置索引号为 14.18.0-425.19.2.el8_7.x86_64 为默认内核,以此满足应用程序的依赖关系。

语法:

# grubby --set-default [kernel-filename]
# grubby --set-default /boot/vmlinuz-4.18.0-425.19.2.el8_7.x86_64

或者

# grubby --set-default vmlinuz-4.18.0-425.19.2.el8_7.x86_64

使用内核条目索引更改默认的内核引导:

语法:

# grubby --set-default-index=[kernel-entry-index]
# grubby --set-default-index=1

重启系统

重启系统,检查旧内核是否持久更改。

# reboot

或者

# init 6

验证更改

让我们检查一下在上一步中添加的内核是否生效了。好了,按我们的预期使用了较旧的内核 “N-1” 进行引导了。

# uname -r
4.18.0-425.19.2.el8_7.x86_64
# grubby --default-kernel
/boot/vmlinuz-4.18.0-425.19.2.el8_7.x86_64

要检查所有内核的详细信息,请运行以下命令:

# grubby --info=ALL

总结

在本教程中,我们展示了如何使用 grubby 工具在 RHEL 8 和 RHEL 9 系统上将旧版本内核设置为默认。

如果有任何问题或反馈,欢迎在下方发表评论。

(题图:MJ/9204b9c1-c1ad-4694-b2f6-a7d983976d22)


via: https://www.2daygeek.com/changing-default-kernel-rhel-8-rhel-9/

作者:Rasool Cool 选题:lujun9972 译者:onionstalgia 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出