LINUX.ORG.RU
ФорумAdmin

Заканчивается место под базу данных


0

0

Использую PostgreSQL. Заканчивается место под папку /var/lib/pgsql/data.

Что можно сделать для увеличения места на разделе? Раздел представляет собой целый диск и увеличить его размер низя. Можно ведь перевести на LVM всё и «подключить» в vg ещё один HDD. Но ведь нельзя же постоянно подключать новые HDD когда место заканчивается (место в стойке же не резиновое).

Можно распределить место с ещё один сервером по средством DRBD, но честно говоря, пока мало представляю как это может мне помочь. Можно через DRBD увеличивать место под раздел путём добавления новых серверов в массив?

В общем, место заканчивается - что делать?


>Можно ведь перевести на LVM всё и «подключить» в vg ещё один HDD. Но ведь нельзя же постоянно подключать новые HDD когда место заканчивается (место в стойке же не резиновое).

Обычно к моменту заполнения очередного винта в LVM новые винты уже намного больше объёмом, чем самые старые в стойке. Подключаешь новый винт, вводишь в LVM, выводишь старый.

Я так обновлялся 80+80+250 -> 80+80+250+500 -> 250+500+640 -> 500+640+1000. Правда, в последнем случае не поленился и не тупой перенос сделал, а с дефрагом LVM (а то некоторые разделы, что много раз понемногу увеличивал, уже по десятку кусочков содержали), благо, место позволило :)

KRoN73 ★★★★★
()

Что можно сделать для увеличения места на разделе?

Следи за руками: % zpool add data ad5p3

Можно ведь перевести на LVM всё и «подключить» в vg ещё один HDD. Но ведь нельзя же постоянно подключать новые HDD когда место заканчивается (место в стойке же не резиновое).

Используй снимки файловой системы, чтобы переместить данные на раздел/пул большего размера с меньшим числом физических носителей/.

В общем, место заканчивается - что делать?

Использовать прогрессивные решения и не пытаться держаться за технологии прошлого века.

iZEN ★★★★★
()
Ответ на: комментарий от sdio

В твоем выбросе было какое-то технологическое отличие от предложения KRoN73?

Конечно же! Ведь в его выбросе используются прогрессивные технологии единственной расово верной Ънтерпрайз-ФС ZFS!

Deleted
()
Ответ на: комментарий от Deleted

Используй снимки файловой системы, чтобы переместить данные на раздел/пул большего размера с меньшим числом физических носителей/.

Это он вместо pvmove предложил? Вот что век грядущий нам готовит.

sdio ★★★★★
()
Ответ на: комментарий от sdio

>Из zpool уже можно удалять диски онлайн или только добавлять?

Из устройств верхнего уровня zpool можно удалять физические устройства, заменять, создавать hot spare (комплект горячей замены).
Устройства верхнего уровня из пула удалять нельзя.

iZEN ★★★★★
()

Винты менять или базу дробить и ставить новые сервера.

true_admin ★★★★★
()
Ответ на: комментарий от ip1981

базу нужно ложить :( это ж не мускуль со --skip-innodb, а вполне полноценная БД с транзакциями и остальной х*етой.

Komintern ★★★★★
()

1. вставляешь новый винт
2. включаешь его в LVM
3. увеличиваешь раздел
4. увеличиваешь ФС
Если новый винт сильно больше старого
1. как и выше
2. как и выше
3. pvmove
4. vgreduce
5. как 3 в первом примере
6. как 4 в первом примере

no-dashi ★★★★★
()
Ответ на: комментарий от iZEN

>Устройства верхнего уровня из пула удалять нельзя.

«Ты не зюзюкай, ты пальцем покажи».

Вот я воткнул новый винт. Расширил на него LVM. Вывел данные LVM со старого винта. Выдернул старый винт. Могу я в ZFS всё это в онлайне сделать? С работающими приложениями и открытыми файлами?

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

> С работающими приложениями и открытыми файлами?

Да, можно. Куда интереснее спросить айзена о том, можно ли такое же проделать на родном фришном Vinum Volume Manager.

oc
()
Ответ на: комментарий от KRoN73

«Ты не зюзюкай, ты пальцем покажи».

mirror, raidz.

zpool remove pool device ...

Removes the specified device from the pool. This command currently only supports removing hot spares and cache devices. Devices that are part of a mirrored configuration can be removed using the «zpool detach» command. Non‐redundant and raidz devices cannot be removed from a pool.

Вот я воткнул новый винт. Расширил на него LVM. Вывел данные LVM со старого винта. Могу я в ZFS всё это в онлайне сделать? С работающими приложениями и открытыми файлами?

Zpool строится из одного или нескольких виртуальных устройств верхнего уровня типа mirror или raidz (вырожденный случай: виртуальное устройство верхнего уровня с одним физическим носителем). Так вот, физическое устройство на горячую из Zpool вынуть можно, если оно в виртуальном устройстве верхнего уровня НЕ_ОДНО, то есть его зеркалирует (mirror) ещё одно такое же устройство или его включает RAID-Z!

iZEN ★★★★★
()
Ответ на: комментарий от oc

>Куда интереснее спросить айзена о том, можно ли такое же проделать на родном фришном Vinum Volume Manager.

GVinum? Закопайте!

Есть современные классы GEOM: gvirstor, gstripe, gmirror, graid3.

iZEN ★★★★★
()
Ответ на: комментарий от iZEN

>то есть его зеркалирует (mirror) ещё одно такое же устройство или его включает RAID-Z!

Не понял. Т.е. вынуть можно только часть зеркала? Вынуть просто включённый на расширение пула винт (без зеркалирования) нельзя? (предварительно, в онлайне же, перебросив с него данные)

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

Цитируем KRoN73

Вынуть просто включённый на расширение пула винт (без зеркалирования) нельзя? (предварительно, в онлайне же, перебросив с него данные)

Ну нет там аналога pvmove

sdio ★★★★★
()
Ответ на: комментарий от sdio

>Ну нет там аналога pvmove

Дык, я на это от iZEN прямого ответа и хотел :)

...

Понятно, выходит, ZFS тут мало интересна :)

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

>Т.е. вынуть можно только часть зеркала?

Да. Или часть RAID-Z.

Вынуть просто включённый на расширение пула винт (без зеркалирования) нельзя? (предварительно, в онлайне же, перебросив с него данные)


Так точно — нельзя.

iZEN ★★★★★
()
Ответ на: комментарий от KRoN73

>Понятно, выходит, ZFS тут мало интересна :)

Если учесть одно обстоятельство... Zpool может создаваться не только на сырых носителях, но и поверх GEOM-классов... То перед нами открываются ТАКИЕ ВОЗМОЖНОСТИ... ;)

iZEN ★★★★★
()
Ответ на: комментарий от iZEN

>Zpool может создаваться не только на сырых носителях, но и поверх GEOM-классов

«Ты не зюзюкай, ты пальцем покажи!». Мне эти термины ни о чём не говорят :) Может в терминах... Ну, хотя бы DOS'а расписать? :)

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

KRoN73 сказал:

Ну нет там аналога pvmove

Дык, я на это от iZEN прямого ответа и хотел :)

Оказывается есть и даже работает (Изя еще этого не знает, т.к. приводит тут какие-то выдержки из маркетингового бреда)

zpool replace poolname olddisk newdisk

Поэкспериментировал на кошках:

# mkfile 512m  /disk1
# mkfile 768m  /disk2
# mkfile 1024m /disk3

# zpool create xxx /disk1
# zpool status xxx
        NAME        STATE     READ WRITE CKSUM
        xxx         ONLINE       0     0     0
          /disk1    ONLINE       0     0     0

# zfs create xxx/part1
# xfs set quota=256m xxx/part1
# cp -r /dir1 /xxx/part1
# df -h /xxx/part1
Filesystem             size   used  avail capacity  Mounted on
xxx/part1              256M    58M   198M    23%    /xxx/part1

# zpool add xxx /disk2
# zpool status xxx
        NAME        STATE     READ WRITE CKSUM
        xxx         ONLINE       0     0     0
          /disk1    ONLINE       0     0     0
          /disk2    ONLINE       0     0     0

# zpool replace xxx /disk1 /disk3

# zpool status xxx
        NAME         STATE     READ WRITE CKSUM
        xxx          ONLINE       0     0     0
          replacing  ONLINE       0     0     0
            /disk1   ONLINE       0     0     0
            /disk3   ONLINE       0     0     0
          /disk2     ONLINE       0     0     0
# sleep 10
# zpool status xxx
        NAME         STATE     READ WRITE CKSUM
        xxx          ONLINE       0     0     0
          /disk3     ONLINE       0     0     0
          /disk2     ONLINE       0     0     0

sdio ★★★★★
()
Ответ на: комментарий от sdio

>Оказывается есть и даже работает

Ну, слава Богу! :)

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

Мне эти термины ни о чём не говорят :) Может в терминах... Ну, хотя бы DOS'а расписать? :)

Допустим, у нас есть три диска: два маленьких и тормозных (ad1 и ad2) и один большой (ad3), объём на котором чуть больше суммы двух маленьких. Делаем отказоустойчивый zpool из трёх физических дисков:

% gstripe label ‐v ‐s 131072 Data ad1 ad2
/dev/gstripe/Data
% zpool create Arena mirror ad3 gstripe/Data
% zpool status
  pool: Arena
 state: ONLINE
 scrub: none requested
config:

	NAME                 STATE     READ WRITE CKSUM
	tank                 ONLINE       0     0     0
	  mirror             ONLINE       0     0     0
	    ad3              ONLINE       0     0     0
	    gstripe/Data     ONLINE       0     0     0

errors: No known data errors
— массив для перестройки есть. Ёмкость пула опеределяется размером наименьшего из носителей ad3 или gstripe/Data (зеркало). Так же, задействовав GEOM-классы, можно получить RAID-0+1 в Zpool, который в последствии легко перевести в RAID-1, заменив страйпы на более ёмкие винчестеры, неспеша ожидая снижения цены, чтобы заменить очередную связку stripe на одни физический диск такой же (физически — чуть большей) ёмкости.

Жизненный пример

Например, у нас есть сейчас 4 дешёвых 320ГБ винчестера. Чтобы в будущем съэкономить деньги и время, делаем из них два страйп-массива: по два диска в каждом (каждый чуть меньше 640ГБ). Включаем их в Zpool как mirrored-пары — получается заркало RAID-1+0 общей ёмкостью ~640ГБ. Через год-два винчестеры ёмкостью 640ГБ будут стоить по ~500 рублей штучка или появятся дешёвые БЫСТРЫЕ(!) flash-накопители 320 или 640ГБ — что выбрать будет известно лишь через год-два, а никак не раньше. За это время наши винчестеры в Zpool'е либо развалятся, либо выработают свой ресурс и придёт время их плановой замены — в любом случае заменять придётся на что-то новое (механику или флэш). Не разрушая пула мы со спокойной душой заменяем логический GEOM-страйп на физический носитель аналогичной ёмкости в горячем режиме!

Далее выбрасываем винчестеры из отсоединённого страйпа — место освобождается ещё для одного физического накопителя (одно место занял новый накопитель большой ёмкости). Когда освободится место из-под второго GEOM-страйпа — вносим туда второй накопитель большой ёмкости и остаётся место для ещё одного накопителя. Если встанет проблема расширения места в пуле эти два свободных места ой как пригодятся!

Таким образом, получаем отказоустойчивый расширяемый массив дисков за счёт использования GEOM и без всякого вреда для Zpool'а на всём протяжении (до 5-6 лет) жизненного цикла хранилища, серьёзно экономя деньги и время на его пересборке.

iZEN ★★★★★
()
Ответ на: комментарий от sdio

> Оказывается есть и даже работает (Изя еще этого не знает, т.к. приводит тут какие-то выдержки из маркетингового бреда)

«Вынуть» (remove) и «Заменить» (replace) - это несколько разные операции

anonymous
()
Ответ на: комментарий от sdio

>Оказывается есть и даже работает

Спасибо, что привёл пример.

(Изя еще этого не знает, т.к. приводит тут какие-то выдержки из маркетингового бреда)


Сам ты еврей. Я привёл выдержку из man zpool.

iZEN ★★★★★
()
Ответ на: комментарий от iZEN

Внимательно читай вместе с онанимусом о чем вообще здесь говорят,

KRoN73> Обычно к моменту заполнения очередного винта в LVM новые винты уже намного больше объёмом, чем самые старые в стойке. Подключаешь новый винт, вводишь в LVM, выводишь старый.

sdio ★★★★★
()
Ответ на: комментарий от sdio

> Внимательно читай вместе с онанимусом о чем вообще здесь говорят,

Самый умный, да?

ЗЫ. Разницу между write() и fwrite() уже асилил?

anonymous
()
Ответ на: комментарий от KRoN73

> Правда, в последнем случае не поленился и не тупой перенос сделал, а с дефрагом LVM (а то некоторые разделы, что много раз понемногу увеличивал, уже по десятку кусочков содержали), благо, место позволило :)

Дефраг как делал, ручками?

const86 ★★★★★
()
Ответ на: комментарий от const86

>Дефраг как делал, ручками?

Да. Как я уже писал, место позволяло, поэтому сделал новые логические тома на новом винте, перенёс туда данные ручками со старых и грохнул старые. До кучи завёл отдельную VG со stripe на три винта (для /usr, /var и т.п.) - но, хотя трансфер поднялся заметно, реальной прибавки по скорости не заметил. Ну да и фиг с ним :)

KRoN73 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.