1 2 3 Previous Next 37 Replies Latest reply on Dec 24, 2010 6:14 AM by michigun

    Как обеспечить нужный размер блока при трансфере?

    Umlyaut Expert

      Доброго времени суток всем!

       

      Может, я уже и торможу под конец года с устатку - тогда, коллеги, снимите меня с ручника, плз.

       

      На хосте Сферы (4.0U1) крутится VM`ка (2003EE).

      Помимо основного vmdk делаю у VM`ки ещё несколько, располагая их на разных сетевых хранилищах (iSCSI, NFS). Запускаю на VM`ке бенчер (HD Tune Pro) и промеряю I/O на "сетевых" vmdk. Получаю примерно следующее:

       

      Read:

      -------------------------------

      transfer size          IOPS

       

      512B              3349 IOPS

      4KB                2880 IOPS

      64KB                992 IOPS

      1MB                 101 IOPS

      Random            191 IOPS

       

      Очевидно, имеет смысл читать малыми блоками по пол-килобайта.  Тогда вопрос - где и что подкрутить у Сферы (на хосте? на VM`ке?), чтобы обмен данными с этим хранилищем шёл именно блоками такого размера?

        • 1. Re: Как обеспечить нужный размер блока при трансфере?
          michigun Master
          VMware Employees

          AFAIK, сам ESX(i) для хранилища всегда оперирует блоками 64К.

           

          насколько понимаю я, то о чем говорите вы - это параметры обращения к диску гостя.

          наверное, это блоки файловой системы гостя?

           

          вообще, меня такая кардинальная разница удивляет %)

          или есть что-то, чего я не знаю, или для малых блоков как то кеширование лучше работает.

          • 2. Re: Как обеспечить нужный размер блока при трансфере?
            MKorotko Expert

            соглашусь с постом выше. Это механизм работы гостя с диском. С вм же тест запускался.

            кстати такое количество иопсов на малых блоках говорит скорее всего о том что они в кеше висели и кеш под малые блоки оптимизирован.

            • 3. Re: Как обеспечить нужный размер блока при трансфере?
              Umlyaut Expert

              michigun wrote:

               

              AFAIK, сам ESX(i) для хранилища всегда оперирует блоками 64К.

               

              А о каких "блоках" в данном случае речь? О "чанках"?

               

              michigun wrote:

               

              ...

              насколько понимаю я, то о чем говорите вы - это параметры обращения к диску гостя.

              наверное, это блоки файловой системы гостя?

              Не-а...

              Все vmdk на сетевых хранилищах для VM`ки видны как "сырые" харды (совсем сырые - статус в дискменеджере 2003-го как Unallocated, даже без разделов, не говоря уже про ФС на них)... HD Tune позволяет это (а для режимов тестирования Write - так даже и требует ("please remove all partitions")).

               

              michigun wrote:

               

              ...
              ...

               

              вообще, меня такая кардинальная разница удивляет %)

              или есть что-то, чего я не знаю, или для малых блоков как то кеширование лучше работает.

               

               

              Собственно, я поэтому и сам стал разбираться, и к сообществу обратился за мозговым штурмом... Буду признателен за любые идеи, готов, не откладывая, проверять их на стенде.

               

              ЗЫ: В принципе, я сейчас потихоньку выстраиваю свою инфраструктуру, отчего и озаботился новыми хранилищами и скоростью обмена с ними. Поскольку у меня нет в хозяйстве тяжёлых ("фирменных") стораджей, то приходится строиться на "файл-серверных" технологиях: iSCSI- и NFS-хранилища на OpenFiler`ах с прицелом перевода на что-то похожее на CentOS. Плюс поглядываю в сторону вин-кластеров на Старвинде (или без оного), но тут надо пробовать в сравнении. Нашу договорённость я не забыл, другое дело, что процесс у меня идёт медленно, а самое главное - "лоскутно" - нет ещё массированного методичного сравнения разных вариантов, имеющих смысл для эксплуатации.

              И, кстати, я несколько опасаюсь не вписаться в формат Вашей песочницы - как пить дать разные гуру начнут нездоровые дискусии на тему "а оно вам надо?". Не, я не отмазываюсь - коллегам по SMB, возможно, будет что-то интересно - просто если что имейте ввиду: не я первый начну резню...

              • 4. Re: Как обеспечить нужный размер блока при трансфере?
                Umlyaut Expert

                Michael Korotko wrote:

                 

                соглашусь с постом выше. Это механизм работы гостя с диском. С вм же тест запускался.

                кстати такое количество иопсов на малых блоках говорит скорее всего о том что они в кеше висели и кеш под малые блоки оптимизирован.

                 

                Ответил Михаилу, но и его тёзке не спущу!

                Михаил, бенчер работает с RAW-диском, даже без раздела на нём. С самим же vmdk работает уже не бенчер и не ОС VM`ки - это дело хоста, нет?

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

                • 5. Re: Как обеспечить нужный размер блока при трансфере?
                  michigun Master
                  VMware Employees

                  Umlyaut wrote:

                   

                  michigun wrote:

                   

                  AFAIK, сам ESX(i) для хранилища всегда оперирует блоками 64К.

                   

                  А о каких "блоках" в данном случае речь? О "чанках"?

                  ну вот если посмотреть картинку, например, отсюда, то:

                  чанк - это то, чем оперирует схд.

                  потом - блоки, или субблоки, VMFS - по 64КБ.

                  а потом - блоки гостя, т.е. те блоки, запросы которых идут изнутри диска.

                   

                   

                  michigun wrote:

                   

                  ...

                  насколько понимаю я, то о чем говорите вы - это параметры обращения к диску гостя.

                  наверное, это блоки файловой системы гостя?

                  Не-а...

                  Все vmdk на сетевых хранилищах для VM`ки видны как "сырые" харды (совсем сырые - статус в дискменеджере 2003-го как Unallocated, даже без разделов, не говоря уже про ФС на них)... HD Tune позволяет это (а для режимов тестирования Write - так даже и требует ("please remove all partitions")).

                   

                  все таки ваша бенчмарка - это именно третий уровень. тут уже не важно - она обращалась к блокам виртуального SCSI диска напрямую, или через файловую систему гостя. все равно этот обращения по адресам SCSI внутри vmdk, которые гипервизор превращал в запросы блоков VMFS, которые СХД превращала в запросы своих блоков (чанков, если я ничего не путаю)

                   

                   

                   

                  ЗЫ: В принципе, я сейчас потихоньку выстраиваю свою инфраструктуру, отчего и озаботился новыми хранилищами и скоростью обмена с ними. Поскольку у меня нет в хозяйстве тяжёлых ("фирменных") стораджей, то приходится строиться на "файл-серверных" технологиях: iSCSI- и NFS-хранилища на OpenFiler`ах с прицелом перевода на что-то похожее на CentOS. Плюс поглядываю в сторону вин-кластеров на Старвинде (или без оного), но тут надо пробовать в сравнении. Нашу договорённость я не забыл, другое дело, что процесс у меня идёт медленно, а самое главное - "лоскутно" - нет ещё массированного методичного сравнения разных вариантов, имеющих смысл для эксплуатации.

                  И, кстати, я несколько опасаюсь не вписаться в формат Вашей песочницы - как пить дать разные гуру начнут нездоровые дискусии на тему "а оно вам надо?". Не, я не отмазываюсь - коллегам по SMB, возможно, будет что-то интересно - просто если что имейте ввиду: не я первый начну резню...

                  мы не пугливые, резни не боимся

                  • 6. Re: Как обеспечить нужный размер блока при трансфере?
                    Umlyaut Expert

                    Хм-мм...

                    С точки зрения бенчмарка, он кидает блоки данных дисковому драйверу винды, минуя драйвер файловой системы той же винды.

                    Тогда, наверно, нужно попробовать создать на одном хранилище пару VMDK и отформатировать их по-разному - один с размером кластера ФС, равному 512B, а второй - 1MB (максимум и минимум) и посмотреть, насколько отличаются показатели IOPS`ов в этих случаях. Правда, скорее всего, нужно будет закрутить файловый бенчмарк, чтобы задействовать драйвер ФС. Ок, буду посмотреть...

                    • 7. Re: Как обеспечить нужный размер блока при трансфере?
                      MKorotko Expert
                      И, кстати, я несколько опасаюсь не вписаться в формат Вашей песочницы - как пить дать разные гуру начнут нездоровые дискусии на тему "а оно вам надо?". Не, я не отмазываюсь - коллегам по SMB, возможно, будет что-то  интересно - просто если что имейте ввиду: не я первый начну резню...

                      хотел уже писать а оно вам надо?

                      Как выше уже тезка писал - "резни не боимся"

                      в свое время тоже пытался на центосах с софтверными таргетами играться, ну и со старвиндом. Кстати последний неплохо себя показывал, но бросил эту затею уже не формат.

                      Скажу либимую свою фразу - сторадж Вам господа нужен.

                       

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

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

                      Короче нужно копать.

                       

                       

                      Тогда,  наверно, нужно попробовать создать на одном хранилище пару VMDK и  отформатировать их по-разному - один с размером кластера ФС, равному  512B, а второй - 1MB (максимум и минимум) и посмотреть, насколько  отличаются показатели IOPS`ов в этих случаях. Правда, скорее всего,  нужно будет закрутить файловый бенчмарк, чтобы задействовать драйвер ФС.  Ок, буду посмотреть...

                      попробуйте коллега, потом расскажите, я тоже склоняюсь к такому варианту.

                      • 8. Re: Как обеспечить нужный размер блока при трансфере?
                        VTsukanov Virtuoso

                        Вставлю 5 коп

                        Ради возможности сравнить с какими то внешними цифрами я бы предложил использовать для Win не HD Tune, а IOMeter и нагрузки (на ваш выбор) или характерные для обычных SQL, Exchange, взято тут


                         

                        ApplicationBlock SizeRandomRead/write ratio
                        Exchange 20034K80%60% read / 40% write
                        Exchange 20078K80%55% read / 45% write
                        SQL server16, 64K100%66% read / 34% write


                        Или конфигурации IOMeter отсюда


                        • 9. Re: Как обеспечить нужный размер блока при трансфере?
                          Umlyaut Expert

                          Michael Korotko wrote:

                           

                          И, кстати, я несколько опасаюсь не вписаться в формат Вашей песочницы - как пить дать разные гуру начнут нездоровые дискусии на тему "а оно вам надо?". Не, я не отмазываюсь - коллегам по SMB, возможно, будет что-то  интересно - просто если что имейте ввиду: не я первый начну резню...

                          хотел уже писать а оно вам надо?

                          Как выше уже тезка писал - "резни не боимся"

                          в свое время тоже пытался на центосах с софтверными таргетами играться, ну и со старвиндом. Кстати последний неплохо себя показывал, но бросил эту затею уже не формат.

                          Скажу либимую свою фразу - сторадж Вам господа нужен.

                           

                           

                          Слыша это, вспоминаю сакраментальное - "лучше быть богатым и здоровым, чем бедным и больным".

                          Сторадж - штука хорошая, но в бюджет SMB вписывается не всегда. Поскольку снобизмом ("или сторадж, или ничего") не страдаю, то, зачастую, приходится обходиться чем попроще ("за неимением гербовой пишут на простой").

                          И да - я всё ещё свято верю в то, что ряд технических (технологических) недостатков "субстораджей" можно нивелировать (скомпенсировать, обойти) грамотными планированием и организацией процесса. В конце концов, применение стораджа не самоцель - приемлемый  результат может быть достигнут разными средствами...

                           

                          Michael Korotko wrote:

                           


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

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

                          Короче нужно копать.

                          И не просто копать, а КОПАТЬ!

                          Надеюсь, что успею ещё в этом году выбросить первые лопаты землицы из шахты по добыче истины. Как всегда надеюсь на январскую паузу, но загадывать боюсь - там ещё в затылок дышат регламентные работы на моём хозяйстве...

                           

                          Причём план давно прикинут.

                          Вначале нужно бы потестить дисковую систему локально, поиграть настройками рэйд-контроллера и понять, что и как он может в разных режимах и конфигурациях томов.

                          После на этом же железе можно будет разворачивать поочерёдно разные таргеты (MS native, MS+SW, *nix) и тестить их уже по сети. На этом этапе заодно можно будет сравнить iSCSI и NFS.

                          Далее есть смысл опробовать масштабирование линков, в частности поизучать в сравнении MPIO против Link Aggregation. Ещё хочу достать из загашника пару FC-адаптеров 2Gbit : если драйверы позволят сделать на директ-линке p2p, то буду сравнивать их с GE (в т.ч. и в варианте 2x1Gb).

                           

                          И как справедливо заметил коллега VTsukanov, действительно стОит использовать такую стандартную тулзу, как IOMeter. Собственно, так и планировалось, просто я (стыдно сказать) до сих пор мешкаю с освоением приведения результатов IOMeter`a к божескому виду (как мне тут уже подсказывали, можно попробовать MS Access ) - ну а HD Tune выдаёт сразу на экран по ранжиру и был под рукой.

                           

                          Вот как-то так...

                          • 10. Re: Как обеспечить нужный размер блока при трансфере?
                            MKorotko Expert
                            И как справедливо заметил коллега VTsukanov, действительно стОит  использовать такую стандартную тулзу, как IOMeter. Собственно, так и  планировалось, просто я (стыдно сказать) до сих пор мешкаю с освоением  приведения результатов IOMeter`a к божескому виду (как мне тут уже  подсказывали, можно попробовать MS Access ) - ну а HD Tune выдаёт сразу на экран по ранжиру и был под рукой.

                            и это правильно, HDtune дает неоднозначные результаты иногда, раньше сам грешил этой утилитой, потом выкинул ее. iometer по адекватней будет.

                             

                            Причём план давно прикинут.

                            Вначале нужно бы потестить дисковую  систему локально, поиграть настройками рэйд-контроллера и понять, что и  как он может в разных режимах и конфигурациях томов.

                            После на  этом же железе можно будет разворачивать поочерёдно разные таргеты (MS  native, MS+SW, *nix) и тестить их уже по сети. На этом этапе заодно  можно будет сравнить iSCSI и NFS.

                            Далее есть смысл опробовать  масштабирование линков, в частности поизучать в сравнении MPIO против  Link Aggregation. Ещё хочу достать из загашника пару FC-адаптеров 2Gbit :  если драйверы позволят сделать на директ-линке p2p, то буду сравнивать  их с GE (в т.ч. и в варианте 2x1Gb).

                             

                            эх есть у вас коллега время копать, у меня например за последние полгода его вообще нету...  удачи вам и копайте, интересно будет посмотреть результаты.

                             

                             

                            Сторадж - штука хорошая, но в бюджет SMB вписывается не всегда.  Поскольку снобизмом ("или сторадж, или ничего") не страдаю, то,  зачастую, приходится обходиться чем попроще ("за неимением гербовой  пишут на простой").

                            прекрасно понимаю, сам когда был в таких ситуациях, но времена изменились....

                             

                            И да - я всё ещё свято верю в то, что ряд технических (технологических)  недостатков "субстораджей" можно нивелировать (скомпенсировать, обойти)  грамотными планированием и организацией процесса. В конце концов,  применение стораджа не самоцель - приемлемый  результат может быть достигнут разными средствами...

                            в секторе смб возможно да, но вот в среднем и крупном секторе уже без стораджа никуда... и как раз результат достигается другими путями)))

                            • 11. Re: Как обеспечить нужный размер блока при трансфере?
                              Umlyaut Expert

                              Michael Korotko wrote:

                               

                              И как справедливо заметил коллега VTsukanov, действительно стОит 
                              использовать такую стандартную тулзу, как IOMeter.
                              Собственно, так и  планировалось, просто я (стыдно сказать)
                              до сих пор мешкаю с освоением  приведения результатов IOMeter`a
                              к божескому виду (как мне тут уже  подсказывали, можно попробовать MS Access )
                              - ну а HD Tune выдаёт сразу на экран по ранжиру и был под рукой.

                              и это правильно, HDtune дает неоднозначные результаты иногда,

                              раньше сам грешил этой утилитой, потом выкинул ее.

                              iometer по адекватней будет.

                               

                               

                              Самое смешное, что мой вопрос "бенчмарконезависимый"

                              (и даже "(суб)сторадженезависимый")...

                              Вы же не будете спорить, что и IOMeter на разных блоках

                              даёт разные показатели.

                              Ergo,  описАв плавную кривую, снова выходим к точке бомбометания

                              - так как же  сделать так, чтобы хост обменивался данными блоками,

                              дающими  максимальный результат?

                               

                              Michael Korotko wrote:

                               


                              эх есть у вас коллега время копать, у меня

                              например за последние

                              полгода его вообще нету...  удачи вам и копайте,

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

                               

                              Ну, не сказать, чтобы так уж время было:

                              ворую я его - у лени, праздности, рутины.

                               

                              Иногда и у сна с едой подворовываю...

                               

                              Michael Korotko wrote:

                              Сторадж - штука хорошая, но в бюджет SMB вписывается
                              не всегда.  Поскольку снобизмом ("или сторадж, или ничего")
                              не страдаю, то,  зачастую, приходится обходиться чем попроще
                              ("за неимением гербовой  пишут на простой").

                              прекрасно понимаю, сам когда был в таких ситуациях,

                              но времена изменились....

                               

                              И да - я всё ещё свято верю в то, что ряд технических
                              (технологических)  недостатков "субстораджей"
                              можно нивелировать (скомпенсировать, обойти)
                              грамотными планированием и организацией процесса.
                              В конце концов,  применение стораджа не самоцель
                              - приемлемый  результат может быть достигнут
                              разными средствами...

                              в секторе смб возможно да, но вот в среднем

                              и крупном секторе уже без стораджа никуда...

                              и как раз результат достигается другими путями)))

                               

                              Скажем  так: если бы я имел возможность работать с тем железом,

                              с которым  хочется, но при этом упорно цеплялся бы за те же субстораджи

                              и прочий  "самопал", то тогда конечно меня можно и нужно было бы

                               

                              закидать тухлыми  валенками со складов Госрезерва.

                              А так мои хулители уподобляются Марии-Антуанетте (коей приписывают фразу про хлеб и пирожные)...

                               

                              (+) UP

                              Что-то круто проапдейтили сайт - самый обычный пост расколбасило не по-детски...

                              • 12. Re: Как обеспечить нужный размер блока при трансфере?
                                MKorotko Expert
                                Что-то круто проапдейтили сайт - самый обычный пост расколбасило не по-детски...

                                ага. меня колбасит от апдейта.... особено читать такие вот посты))) блин еще бага не вижу новых сообщений, точнее раньше все жирным выделялось что новое и где появились ответы, теперь у меня нифига нет... и подпись не ставиться...

                                 

                                 

                                Ergo,  описАв плавную кривую, снова выходим к точке бомбометания

                                - так как же  сделать так, чтобы хост обменивался данными блоками,

                                дающими  максимальный результат?

                                а тут курить надо))))

                                • 13. Re: Как обеспечить нужный размер блока при трансфере?
                                  xxlkms Enthusiast

                                  Umlyaut wrote:

                                   

                                  Read:

                                  -------------------------------

                                  transfer size          IOPS

                                   

                                  512B              3349 IOPS

                                  4KB                2880 IOPS

                                  64KB                992 IOPS

                                  1MB                 101 IOPS

                                  Random            191 IOPS

                                   

                                  Очевидно, имеет смысл читать малыми блоками по пол-килобайта.  Тогда вопрос - где и что подкрутить у Сферы (на хосте? на VM`ке?), чтобы обмен данными с этим хранилищем шёл именно блоками такого размера?

                                  А по-моему этот HDtune просто последовательно читает заданными блоками. Тогда не удивительно, что чем меньше блок тем больше iops'ов. Кстати, а автор вообще себе представляет взаимосвязь между iops'ми и MB/s?

                                  • 14. Re: Как обеспечить нужный размер блока при трансфере?
                                    Umlyaut Expert

                                    xxlkms wrote:

                                     

                                    Umlyaut wrote:

                                     

                                    Read:

                                    -------------------------------

                                    transfer size          IOPS

                                     

                                    512B              3349 IOPS

                                    4KB                2880 IOPS

                                    64KB                992 IOPS

                                    1MB                 101 IOPS

                                    Random            191 IOPS

                                     

                                    Очевидно, имеет смысл читать малыми блоками по пол-килобайта.  Тогда вопрос - где и что подкрутить у Сферы (на хосте? на VM`ке?), чтобы обмен данными с этим хранилищем шёл именно блоками такого размера?

                                    А по-моему этот HDtune просто последовательно читает заданными блоками. Тогда не удивительно, что чем меньше блок тем больше iops'ов. Кстати, а автор вообще себе представляет взаимосвязь между iops'ми и MB/s?

                                    Да, автор в курсе наличия обратной зависимости между этими двумя параметрами. Только автор не помнит, где бы он в данном треде вспоминал про трансфер в мегабайтах в сек. - до сих пор у него речь шла исключительно об IOPSах: соответственно, автор недоумевает, с каких рыжиков про MB/s  вспомнил вдруг его оппонент?

                                    Да, к слову - автор был бы весьма признателен уважаемому xxlkms`у, если бы тот впредь выражался менее туманно и загадочно ("вообще представляет себе...?" - к чему бы эта поза сфинкса и тон пифии?) - тогда, возможно, автору не пришлось бы снова проявлять известную язвительность в, казалось бы, сугубо технической дискуссии...

                                     

                                    xxlkms wrote:

                                     

                                    Umlyaut wrote:

                                     

                                    Read:

                                    -------------------------------

                                    transfer size          IOPS

                                     

                                    512B              3349 IOPS

                                    4KB                2880 IOPS

                                    64KB                992 IOPS

                                    1MB                 101 IOPS

                                    Random            191 IOPS

                                     

                                    Очевидно, имеет смысл читать малыми блоками по пол-килобайта.  Тогда вопрос - где и что подкрутить у Сферы (на хосте? на VM`ке?), чтобы обмен данными с этим хранилищем шёл именно блоками такого размера?

                                    А по-моему этот HDtune просто последовательно читает заданными блоками. Тогда не удивительно, что чем меньше блок тем больше iops'ов.

                                     

                                    Уважаемый, а никого и не удивляет "пропорция" между размером блока и к-вом иопсов - равно как и не озадачивает предположительный механизм чтения, вероятно, реализованный в HD Tune.

                                    Вопрос ставился по-иному - КАК заставить хост работать с хранилищем блоками нужного размера? Попробуйте (всё же) переключиться на смысл топика...

                                    1 2 3 Previous Next