В продолжение знакомства с RAID-контроллерами, решил написать короткую статью о создании нового логического диска больше 2ТБ под HP raid контроллером используя hpacucli. Если данная тулза не установлена, пройдитесь по этой статье.
Для начала посмотрим какие у нас есть диски.
root@sto:~# hpacucli ctrl all show config Smart Array P410 in Slot 1 (sn: PACCR0L9VZ31Q7S) array A (SATA, Unused Space: 0 MB) logicaldrive 1 (2.7 TB, RAID 1, OK) physicaldrive 1I:1:1 (port 1I:box 1:bay 1, SATA, 3 TB, OK) physicaldrive 1I:1:2 (port 1I:box 1:bay 2, SATA, 3 TB, OK) unassigned physicaldrive 1I:1:3 (port 1I:box 1:bay 3, SATA, 3 TB, OK) physicaldrive 1I:1:4 (port 1I:box 1:bay 4, SATA, 3 TB, OK) physicaldrive 1I:1:5 (port 1I:box 1:bay 5, SATA, 3 TB, OK) physicaldrive 1I:1:6 (port 1I:box 1:bay 6, SATA, 3 TB, OK) physicaldrive 1I:1:7 (port 1I:box 1:bay 7, SATA, 3 TB, OK) physicaldrive 1I:1:8 (port 1I:box 1:bay 8, SATA, 3 TB, OK) physicaldrive 1I:1:9 (port 1I:box 1:bay 9, SATA, 3 TB, OK) physicaldrive 1I:1:10 (port 1I:box 1:bay 10, SATA, 3 TB, OK)
Как видим, у нас есть 8 дисков по 3ТВ каждый, из которых можно слепить один серьезный диск. С этого вывода нам нужен номер слота(Slot 1) и идентификаторы дисков(1I:1:3, 1I:1:4,… т.п.).
Создаем новый RAID5 (по аналогии можно создавать любой тип рейдов) из всех дисков.
root@sto:~# hpacucli ctrl slot=1 create type=ld drives=1I:1:3,1I:1:4,1I:1:5,1I:1:6,1I:1:7,1I:1:8,1I:1:9,1I:1:10 raid=5
Все интуитивно понятно: создать логическое устройство type=ld на контроллере со слотом slot= из дисков drives= в конфигурации raid=5.
Теперь у нас появиться новое блочное устройство, которое нужно разметить и смонтировать. Так как размер диска превышает 2TB – MBR с ним не справиться. Тулза fdisk в данном случаи может ругаться, что размер диска очень большой, так что обрежу ка я его до максимально возможного, т.е. 2ТВ. Проверяем.
root@sto:~# fdisk /dev/sdb WARNING: GPT (GUID Partition Table) detected on '/dev/sdb'! The util fdisk doesn't support GPT. Use GNU Parted. WARNING: The size of this disk is 21.0 TB (21003913093120 bytes). DOS partition table format can not be used on drives for volumes larger than (2199023255040 bytes) for 512-byte sectors. Use parted(1) and GUID partition table format (GPT). The device presents a logical sector size that is smaller than the physical sector size. Aligning to a physical sector (or optimal I/O) size boundary is recommended, or performance may be impacted. Command (m for help): p Disk /dev/sdb: 21003.9 GB, 21003913093120 bytes 255 heads, 63 sectors/track, 2553580 cylinders, total 41023267760 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes Disk identifier: 0x00000000 Device Boot Start End Blocks Id System Command (m for help): n Partition type: p primary (0 primary, 0 extended, 4 free) e extended Select (default p): Using default response p Partition number (1-4, default 1): Using default value 1 First sector (2048-4294967295, default 2048): Using default value 2048 Last sector, +sectors or +size{K,M,G} (2048-4294967294, default 4294967294): Using default value 4294967294 Command (m for help): p Disk /dev/sdb: 21003.9 GB, 21003913093120 bytes 255 heads, 63 sectors/track, 2553580 cylinders, total 41023267760 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes Disk identifier: 0x00000000 Device Boot Start End Blocks Id System /dev/sdb1 2048 4294967294 2147482623+ 83 Linux Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks.
Здесь мы создали один раздел, который оккупирует все место размером в 21ТВ и увидели предупреждение, в котором пишут, что нужно использовать утилиту parted(еще успеем).
Далее форматируем полученный раздел и маунтим.
root@sto:~# mkfs.ext4 /dev/sdb1 mke2fs 1.42 (29-Nov-2011) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 134217728 inodes, 536870655 blocks 26843532 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=4294967296 16384 block groups 32768 blocks per group, 32768 fragments per group 8192 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968, 102400000, 214990848, 512000000 Allocating group tables: done Writing inode tables: done Creating journal (32768 blocks): done Writing superblocks and filesystem accounting information: done root@sto:~# mount /dev/sdb1 /mnt/ root@sto:~# df -h Filesystem Size Used Avail Use% Mounted on /dev/sda2 2.8T 43G 2.6T 2% / udev 32G 4.0K 32G 1% /dev tmpfs 13G 236K 13G 1% /run none 5.0M 0 5.0M 0% /run/lock none 32G 0 32G 0% /run/shm /dev/sdb1 2.0T 31G 1.9T 2% /mnt
Таки да. Как видим, размер смонтированого диска – 2ТВ. Чтобы исправить эту проблему – нужно использовать… правильно вы говорите – parted.
Отмонтируем диск и спустим на него parted тулзу.
root@sto:~# umount /mnt root@sto:~# parted /dev/sdb GNU Parted 2.3 Using /dev/sdb Welcome to GNU Parted! Type 'help' to view a list of commands. (parted) rm 1 (parted) mklabel gpt Warning: The existing disk label on /dev/sdb will be destroyed and all data on this disk will be lost. Do you want to continue? Yes/No? yes (parted) mkpart primary 0GB 21.0TB (parted) print Model: HP LOGICAL VOLUME (scsi) Disk /dev/sdb: 21.0TB Sector size (logical/physical): 512B/4096B Partition Table: gpt Number Start End Size File system Name Flags 1 1049kB 21.0TB 21.0TB ext4 primary (parted) quit Information: You may need to update /etc/fstab.
Здесь мы создали новый раздел без всяких предупреждений, где нас вежливо попросили обновить fstab после завершения. Теперь проверяем, что получилось.
root@sto:~# fdisk -l WARNING: GPT (GUID Partition Table) detected on '/dev/sda'! The util fdisk doesn't support GPT. Use GNU Parted. Disk /dev/sda: 3000.6 GB, 3000559427584 bytes 255 heads, 63 sectors/track, 364797 cylinders, total 5860467632 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes Disk identifier: 0x00000000 Device Boot Start End Blocks Id System /dev/sda1 1 4294967295 2147483647+ ee GPT Partition 1 does not start on physical sector boundary. WARNING: GPT (GUID Partition Table) detected on '/dev/sdb'! The util fdisk doesn't support GPT. Use GNU Parted. Disk /dev/sdb: 21003.9 GB, 21003913093120 bytes 255 heads, 63 sectors/track, 2553580 cylinders, total 41023267760 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes Disk identifier: 0x00000000 Device Boot Start End Blocks Id System /dev/sdb1 1 4294967295 2147483647+ ee GPT Partition 1 does not start on physical sector boundary.
fdisk говорит, что есть еще один диск на 21ТВ. Теперь создадим файловую систему и замаунтим.
root@sto:~# mkfs.ext4 /dev/sdb1 mke2fs 1.42 (29-Nov-2011) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 320495616 inodes, 5127908096 blocks 256395404 blocks (5.00%) reserved for the super user First data block=0 156492 block groups 32768 blocks per group, 32768 fragments per group 2048 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968, 102400000, 214990848, 512000000, 550731776, 644972544, 1934917632, 2560000000, 3855122432 Allocating group tables: done Writing inode tables: done Creating journal (32768 blocks): done Writing superblocks and filesystem accounting information: done root@sto:~# mount /dev/sdb1 /mnt/ root@sto:~# df -h Filesystem Size Used Avail Use% Mounted on /dev/sda2 2.8T 43G 2.6T 2% / udev 32G 4.0K 32G 1% /dev tmpfs 13G 236K 13G 1% /run none 5.0M 0 5.0M 0% /run/lock none 32G 0 32G 0% /run/shm /dev/sdb1 20T 75G 19T 1% /mnt
Теперь все в порядке. Спасибо за внимание. Пробуйте на практике.