Dell Boot Optimized Storage Solution (BOSS) 设备是支持两个 M.2 SSD 驱动器的独立 PCIe 卡,默认为 RAID 1 配置。它设计为操作系统启动驱动器,可将所有其他驱动器腾出来用作高速缓存或数据存储设备。这是一种确保主驱动器托架可以完全用于比操作系统启动更重要的任务的简单方法。
但是,由于 BOSS 卡需要经历正常的设备枚举,因此 BIOS 启动顺序中的第一个设备有可能会显示为其他设备。在以编程方式部署操作系统时,这可能会导致问题。
以下信息介绍了如何标记或识别 Dell BOSS 卡,以确保在它上面安装操作系统。搜索和使用“易于识别的名称”(例如 DELLBOSS VD)是确保操作系统安装到 BOSS 的正确方式。每个操作系统都可以通过本文中详细介绍的各种方法查找并使用 BOSS 卡。
重要提示:以下示例使用 DELLBOSS VD 作为 BOSS 卡的名称。但是,某些较新的 BOSS 卡版本可能会使用其他名称,例如 Dell BOSS-N1。执行交互式安装时,卡的名称应该很明显,但下面的自动化安装脚本则必须根据需要进行调整。在执行自动化安装之前,可能需要执行交互式安装的初始步骤,以确定卡的名称。
BOSS 设备在设备的 Model 属性中包含字符串 DELLBOSS,这可用于识别该设备,如以下示例所示:
# cat /proc/scsi/scsi Attached devices: Host: scsi0 Channel: 00 Id: 00 Lun: 00 Vendor: ATA Model: DELLBOSS VD Rev: MV.R Type: Direct-Access ANSI SCSI revision: 05 Host: scsi2 Channel: 00 Id: 00 Lun: 00 Vendor: Marvell Model: Console Rev: 1.01 Type: Processor ANSI SCSI revision: 05
基于 Linux 的操作系统使用 udev 在 /dev/disk/by-id/ 中创建符号链接,这些链接可用于查找 BOSS 设备,如下所示:
# ls -l /dev/disk/by-id/ total 0 lrwxrwxrwx. 1 root root 9 Jan 13 15:02 ata-DELLBOSS_VD_6668c813b78a0010 -> ../../sda
此属性可在自动化安装脚本中用于检测 BOSS 卡是否存在,并指示安装程序使用它进行安装。
对于自动化 (kickstart) 安装,可以使用预安装脚本来确保安装程序将操作系统放在正确的驱动器上。以下脚本通过搜索包含 DELLBOSS 的型号字段的设备来识别 BOSS 设备。它指示安装程序仅使用该设备,而忽略安装程序可用的所有其他存储设备。
ks.cfg: %include /tmp/bootdisk.cfg %pre # Use DELLBOSS device for OS install if present. BOSS_DEV=$(find /dev -name "*DELLBOSS*" -printf %P"\n" | \ egrep -v -e part -e scsi| head -1) if [ -n "$BOSS_DEV" ]; then echo ignoredisk --only-use="$BOSS_DEV" > /tmp/bootdisk.cfg fi %end
下面是一个示例 /tmp/bootdisk.cfg,其中包含安装程序应使用的 BOSS 设备的设备名称。
# cat /tmp/bootdisk.cfg ignoredisk --only-use=disk/by-id/ata-DELLBOSS_VD_6668c813b78a0010
基于 SUSE 的操作系统的交互式安装不会列出设备的标签,仅列出其设备名称。因此,用户必须切换到文本控制台才能获取 BOSS 设备的设备名称。
图 2 - 建议的分区
在 Suggested Partitioning 屏幕中,选择 Guided Setup。
图 3 - 硬盘选择
通过按 Ctrl+Alt+F2 切换到控制台。在命令提示符处,输入以下命令以显示应该用于安装的 BOSS 设备的 SCSI 设备名称。
提醒:chvt 7 命令用于退出控制台:
# lsscsi| grep DELLBOSS # chvt 7
图 4 - lsscsi 输出
在 Select Hard Disk 屏幕中,选择上面的 lsscsi 命令输出中的 SCSI 设备名称,并确保未选择任何其他设备。
继续安装。这可确保操作系统安装在 BOSS 设备上。
对于自动化安装,可以将以下内容添加到 autoyast.xml:
##Sample pre-script section in the autoyast file to extract the device name for BOSS device. <pre-scripts config:type="list"> <script> <feedback config:type="boolean">true</feedback> <debug config:type="boolean">false</debug> <filename>pre.sh</filename> <interpreter>shell</interpreter> <source><![CDATA[ # Use DELLBOSS device for OS install if present. DEV=$(find /dev -name "*DELLBOSS*" | egrep -v -e part -e scsi| head -1) if [ -n "$DEV" ]; then BOSS_DEV=$(basename $(readlink $DEV)) sed -e "s/@ROOT_DEVICE@/$BOSS_DEV/" /tmp/profile/autoinst.xml >/tmp/profile/modified.xml cp /tmp/profile/modified.xml /tmp/profile/autoinst.xml fi ]]> </source> </script> </pre-scripts> ###Sample autoyast partitioning section with ROOT device variable that needs to be replaced by the BOSS device found in the pre-script section above. <partitioning config:type="list"> <drive> <device>/dev/@ROOT_DEVICE@</device> <disklabel>gpt</disklabel> <enable_snapshots config:type="boolean">true</enable_snapshots> <initialize config:type="boolean">true</initialize> <partitions config:type="list"> <partition> <create config:type="boolean">true</create> <crypt_fs config:type="boolean">false</crypt_fs> <filesystem config:type="symbol">vfat</filesystem> <format config:type="boolean">true</format> <fstopt>umask=0002,utf8=true</fstopt> <loop_fs config:type="boolean">false</loop_fs> <mount>/boot/efi</mount> <mountby config:type="symbol">uuid</mountby> <partition_id config:type="integer">259</partition_id> <partition_nr config:type="integer">1</partition_nr> <resize config:type="boolean">false</resize> <size>155352576</size> </partition> </partitions> </drive> </partitioning>
图 5 - 磁盘分区方法
图 6 - 磁盘分区
ks.cfg: %include /tmp/bootdisk.cfg %pre # Use DELLBOSS device for OS install if present. BOSS_DEV=$(readlink -f $(find /dev -name "*DELLBOSS*" | \ egrep -v -e part -e scsi| head -1)) if [ -n "$BOSS_DEV" ]; then echo ignoredisk --only-use="$BOSS_DEV" > /tmp/bootdisk.cfg fi %end
图 7 - ESXi 安装程序
对于 ESXi 则略有不同,安装程序可以检测 BOSS 驱动器,因此 kickstart 脚本只有一行。
install --overwritevmfs --firstdisk="DELLBOSS VD"
在具有多个磁盘的服务器中,确保操作系统安装到 BOSS 卡可能颇具挑战性。在此示例中,BOSS 卡是磁盘 6,但在“磁盘管理”中无法一眼看出。(提醒:在此屏幕截图中操作系统已完全安装。)BOSS 卡没有在顶层标识出来,但可以通过右键单击磁盘 6 并选择属性来识别。
图 8 - 磁盘管理
图 9 - Dell BOSS 属性视图
此外,使用 WinPE 的标准 Windows 安装过程会带来一些挑战。默认情况下,PowerShell 在 WinPE 中不可用(但可以添加),并且只有特定工具可用于识别 BOSS 卡。标准安装屏幕中不标识 BOSS 卡,如以下的屏幕截图所示。
知道 BOSS 卡的大小对于指定安装到该卡非常有帮助。为了确定,请使用 Shift-F10 在 WinPE 中打开命令提示符窗口。
在以下屏幕截图中,磁盘 6 无法明确标识为 BOSS 卡。此示例有六个驱动器,但有些服务器的驱动器要多得多。
图 10 - Windows 磁盘选择
图 11 - Windows 磁盘选择
图 12 - Windows 磁盘选择
命令行界面提供了一个解决方案。要打开命令提示符,您可以在 Windows 安装期间的任何时候在 WinPE 中按 Shift-F10。
1.Diskpart:Diskpart 的唯一问题是要求在运行 detail disk 之前选择磁盘,如下所示。这需要您猜测要选择的磁盘。因此,知道 BOSS M.2 设备的大小非常重要。选择正确的驱动器后将显示 DELLBOSS VD:
图 13 - Diskpart
2.使用 PowerShell,可以通过多种方法识别 BOSS 卡。但在默认情况下,PowerShell 在 WinPE 中不可用,因此除非已添加 PowerShell 或操作系统已完全安装,否则无法使用这些方法。
图 14 - PowerShell 在 WinPE 中不可用
3.Windows Management Instrumentation 命令行界面 (WMIC) 可以帮助我们确定地选择 Dell BOSS 设备。WMIC 在完整操作系统和 WinPE 中可用。
使用以下命令识别 BOSS 卡:
WMIC Diskdrive get model, name
图 15 - WMIC 输出
使用 WMIC,您可以将硬盘位置与名称 DELLBOSS VD 关联。(请参见上面的 PHYSICALDRIVE6。)
通过上述任一方法(Diskpart 或 WMIC)了解物理位置后,可以在脚本中使用以下命令:
Diskpart SELECT DISK=<disk location path> command to select each drive.
例如:
SELECT DISK=PCIROOT(0)#PCI(0100)#ATA(C00T00L00)
在上面的服务器示例中,命令将为:
SELECT DISK=PCIROOT(3A)#PCI(0000)#PCI(0000)#ATA(C00T00L00)
下面是格式化驱动器的简单示例。提醒:真正的操作系统安装脚本会更为复杂,以包含在 Windows 安装期间创建的所有标准分区。有关更多信息,请参阅此页。
使用上面所示的路径创建一个文本文件 (diskpart.txt):
SELECT DISK=PCIROOT(3A)#PCI(0000)#PCI(0000)#ATA(C00T00L00) CLEAN CREATE PART PRI SELECT PART 1 ACTIVE ASSIGN FORMAT FS=NTFS QUICK EXIT
创建操作系统安装脚本或批处理文件,并添加以下行:
DISKPART /s diskpart.txt
备选方法:使用 Powershell、WMI 和注册表识别 BOSS 卡。
PowerShell
在 Windows 中,PowerShell 可以使用 Get-Disk 或 Get-PhysicalDisk 命令显示“易于识别的名称”(DELLBOSS VD),如下所示。此示例显示 BOSS 卡并不总是枚举为磁盘 0,在这里,它显示为磁盘 12:
图 16 - Powershell Get-Disk 输出
图 17 - Powershell Get-PhysicalDisk 输出
图 18 - 过滤后的 Powershell Get-PhysicalDisk 输出
图 19 - WBEMTEST 应用程序屏幕
Powershell
Get-WmiObject cmdlet 提供了一种更简单的方法来显示相同的信息:
图 20 - Powershell Get-WmiObject 输出
HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\Scsi\Scsi Port #\Scsi Bus #\Target Id #\Logical Unit Id #\Identifier
重要提示:在 Registry Editor 中搜索 DELLBOSS 以获得正确路径(端口、总线和目标)是最简单的方法,尤其是在系统包含许多驱动器的情况下。下面显示的路径只是一个示例。
图 21 - Windows 注册表
戴尔支持创建了一个包含 racadm 和其他必要工具的 live ISO 映像。客户可以使用此 ISO 启动至 Linux 并执行 racadm 任务。单击 此处 了解更多信息。
以下是用于使用 RACADM 命令部署到 BOSS 的脚本中的一些片段:
# Identify ##Get the list of all AHCI controllers and grab the BOSS controller. racadm storage get controllers | grep -i ahci > /tmp/all_ctrls.txt for ctrl in `cat /tmp/all_ctrls.txt`;do if [[ `racadm storage get controllers:$ctrl -p Name | grep -i boss` ]];then boss_ctrl=$ctrl;fi;done # Configure RAID ##BOSS SSD drives are of form factor M.2. Capture the m.2 for factor physical disks racadm storage get pdisks > /tmp/all_disks.txt racadm storage get pdisks:$disk -p FormFactor | grep -i 'm.2' ##Create a VD (raid 1) on the two BOSS PDs racadm storage createvd:$boss_ctrl -rl r1 -name boss_ssd -pdkey:${boss_disks[0]},${boss_disks[1]} # Change boot order in bios to boot from. racadm set BIOS.BootSettings.HddSeq <AHCI controller> && /opt/dell/srvadmin/sbin/racadm set BIOS.BootSettings.HddFailover Enabled
Dell PowerEdge Boot Optimized Storage Solution – BOSS
Kickstart 命令 Ignoredisk
Windows 硬盘和分区