GaussDB-准备数据盘

112 阅读4分钟

GaussDB-准备数据盘

前提条件

GaussDB支持使用SSD盘作为数据库的主存储设备,支持SAS/SATA和NVME协议的SSD盘(以下分别简称SSD盘和NVMe盘)。

安装实例由程序自动组盘,除系统盘外所有磁盘作为数据盘使用,并挂载在/var/chroot子目录下,在使用前请确保这些数据盘干净可用。

NOTICE:

  • 安装实例时,管理系统会将节点上除系统盘以外的磁盘都作为数据盘。
  • 请提前清理数据盘,并保持为裸磁盘(如回显中的sdb、nvme0n1),请勿提前组数据盘。
  • 如果数据盘里有NVMe盘,则优先使用NVMe盘;如果该节点既有SSD盘又有NVMe盘,则只会使用NVMe盘。

请保持磁盘类型一致,避免混用。如下所示磁盘为磁盘混用情况。

~# lsblk  
NAME              MAJ:MIN RM  SIZE   RO TYPE MOUNTPOINT 
 sda                0:8    0 557.9G   0 disk  
 |_sda1             8:1    0     1G   0 part /boot  
 |_sda2             8:2    0 556.9G   0 part  
   |_klas-root    253:0    0    70G   0 lvm  / 
   |_klas-swap    253:1    0     4G   0 1vm   
   |_klas-home    253:2    0 482.9G   0 1vm  /home  
 sdb                8:16   0   3.6T   0 disk   
 nvme0n1          259:0    0   1.5T   0 disk
操作步骤
  1. 执行以下命令,检查某个数据盘是否干净可用,以数据盘sdb为例。

    pvcreate --test /dev/sdb

    • 若回显如下所示表示数据盘sdb干净可用,满足安装实例要求。

      ~# pvcreate --test /dev/sdb
        TEST MODE: Metadata will NOT be updated and volumes will not be (de)activated.
        Physical volume "/dev/sdb" successfully created.
      
    • 否则,请执行后续步骤,手动清理数据盘。
  2. 确认数据盘下无重要数据后,手动清理数据盘。由于清理磁盘的场景多样,无法提供全部场景,故提供几种常见场景以供参考。

    • 场景1:回显为“Can't initialize physical volume "/dev/sdb" of volume group "***" without /dev/sdb: physical volume not initialized.”。

      1. 执行pvcreate /dev/sdb命令,回显提示无法初始化物理设备。

      2. 执行lsblk命令,查看磁盘使用情况。

        1. 回显如下所示,数据盘无分区,无挂卷。

          ~# lsblk
          NAME              MAJ:MIN RM  SIZE   RO TYPE MOUNTPOINT
          sda                0:8    0 557.9G   0 disk  
           |_sda1             8:1    0     1G   0 part /boot  
           |_sda2             8:2    0 556.9G   0 part  
             |_klas-root    253:0    0    70G   0 lvm  / 
             |_klas-swap    253:1    0     4G   0 1vm   
             |_klas-home    253:2    0 482.9G   0 1vm  /home  
           sdb                8:16   0   3.6T   0 disk 
          

          执行pvcreate -ff -y /dev/sdb命令,强制创建物理卷。

        2. 回显如下所示,有残留文件或逻辑卷,以残留/dev/gaussdbvg/mydata1为例。

          ~# lsblk
          NAME               MAJ:MIN RM  SIZE   RO TYPE MOUNTPOINT
          sda                 0:8    0 557.9G   0 disk  
           |_sda1             8:1    0     1G   0 part /boot  
           |_sda2             8:2    0 556.9G   0 part  
             |_klas-root     253:0    0    70G   0 lvm  / 
             |_klas-swap     253:1    0     4G   0 1vm   
             |_klas-home     253:2    0 482.9G   0 1vm  /home  
           sdb                 8:16   0   3.6T   0 disk 
           |_gaussdbvg-mydata1 8:1    0     1G   0 lvm  /var/chroot/var/lib/engine/data1
          
          1. 执行umount -l / dev/gaussdbvg/mydata1命令解除挂载。

          2. 执行lvremove -f /dev/gaussdbvg/mydata1命令删除逻辑卷。

            如果回显为”Logical volume **** contains filesystem in use.”,表示存在正在被进程使用的文件。以Ruby进程占用为例,执行pkill -u Ruby命令结束进程后重新执行清理命令即可。

          3. 执行vgremove -f /dev/gaussdbvg命令删除逻辑卷组。

    • 场景2:回显为“Execute pvcreate /dev/sdb failed:ext4 signature detected on /dev/sdb at offset 1080.Wipe it? [y/n]”。

      1. 执行pvcreate /dev/sdb命令,回显提示是否擦除。
      2. 键入“y”擦除数据。
    • 场景3:回显为“Can't open /dev/sdb exclusively. Mounted filesystem?”。

      1. 执行pvcreate /dev/sdb命令,回显提示数据盘上挂载了目录。

      2. 执行lsblk命令,查看磁盘使用情况,以挂载了/data目录为例。

        ~# lsblk  
        NAME              MAJ:MIN RM  SIZE   RO TYPE MOUNTPOINT 
         sda                0:8    0 557.9G   0 disk  
         |_sda1             8:1    0     1G   0 part /boot  
         |_sda2             8:2    0 556.9G   0 part  
           |_klas-root    253:0    0    70G   0 lvm  / 
           |_klas-swap    253:1    0     4G   0 1vm   
           |_klas-home    253:2    0 482.9G   0 1vm  /home  
         sdb                8:16   0   3.6T   0 disk /data
        
      3. 执行umount /data命令,将/data目录解除挂载。

    • 场景4:回显为“Device /dev/sdb excluded by a fillter”。

      1. 执行pvcreate /dev/sdb命令,回显提示设备被过滤器筛除,无法找到分区表。

      2. 执行fdisk -l命令,查看数据盘的分区情况,以存在分区/dev/sdb1为例。

        ~# fdisk -l
        Disk /dev/sdb: 300 GiB, 322122547200 bytes, 629145600 sectors
        Units: sectors of 1 * 512 = 512 bytes
        Sector size (logical/physical): 512 bytes / 512 bytes
        I/O size (minimum/optimal): 512 bytes / 512 bytes
        Disklabel type: dos
        Disk identifier: 0xd0f1acb4
        
        Device     Boot Start       End   Sectors  Size Id Type
        /dev/sdb1        2048 629145599 629143552  300G 83 Linux
        
      3. 执行parted /dev/sdb命令,进入磁盘分区管理。

      4. 执行mklabel msdos创建标签。

      5. 执行yes确认创建。

      6. 执行quit保存并退出修改。

  3. 再次执行以下命令,检查数据盘是否干净可用。

    pvcreate --test /dev/sdb

更多详情请参考GaussDB 文档中心:doc.hcs.huawei.com/db/zh-cn/ga…