• В чём понт SAS?

    alexzeynikov
    @alexzeynikov
    Ох, сигейта нет на вас ;). Я видел отличную презентацию про отличия SAS и SATA у Игоря Макарова из Seagate. По стараюсь кратко и по существу.

    Ответов несколько и с разных сторон.
    1. С точки зрения протоколов, SAS — это протокол, направленный на максимальную гибкость, надежность, функциональность. Я бы сравнил SAS с технологией ECC для памяти. SAS — это с ECC, SATA — без. Примером могут служить следующие уникальные фичи (по сравнению с SATA).
    — 2 полнодуплексных порта на устройствах SAS в отличие от одного полудуплексного у SATA. Это дает возможность строить отказоустойчивые много дисковые топологии в системах хранения данных.
    — end-to-end data protection T.10. — набор алгоритмов SAS, позволяющий с помощью чексумм быть уверенным в том, что данные, подготовленные на запись без искажений записаны на устройство. И прочитаны и переданы на хост без ошибок. Эта уникальная функция позволяет избавиться от так называемых silent errors, то есть когда на диск пишутся ошибочные данные, но никто об этом не знает. Ошибки могут появиться на любом уровне. Чаще всего в буферах в оперативной памяти при приеме-передаче. Silent errors — бич SATA. Некоторые компании утверждают что на диске SATA объемом боле 500 ГБ вероятность повреждения данных хотя бы в одном секторе близка к единице.
    — про мультипасинг говорили в предыдущих ответах.
    — зонинг T.10 — позволяет разбить домен SAS на зоны (типа VLAN, если такая аналогия ближе).
    — и многое-многое другое. Я привел только самые общеизвестные фичи. Кому интересно — читайте спецификации SAS/SATA

    2. Не все SAS диски одинаковы. Есть несколько категорий SAS и SATA.
    — т.н. Enterprise SAS — обычно 10K или 15K оборотов в минуту. Объемы до 1 ТБ. Используются для СУБД и критичных к скорости приложений.
    — Nearline SAS — обычно 7.2K, объемы от 1 ТБ. Механика таких устройств похожа на Enterprise SATA. Но все равно два порта и другие прелести SAS. Используются в enterprise, где нужны большие объемы.
    — Enterprise SATA, иногда RAID edition SATA — почти то же самое что и NL SAS, только однопортовый SATA. Чуть дешевле NL SAS. Объемы от 1 TB
    — Desktop SATA — то что ставится в PC. Самые дешевые и самые низкокачественные диски.
    Первые три категории можно ставить в массивы на контроллерах от LSI и Adaptec. Последний — нельзя категорически. Проблем не оберетесь потом. И не потому, что у нас картельный сговор, а потому, что диски проектируются под разные задачи. То есть 8x5 или 24x7, например. Есть также такое понятие как максимальная допустимая задержка, после которой контроллер считает диск умершим. Для десктопных дисков она в разы больше. Это значит, что под нагрузкой рабочие Desktop SATA будут «вываливаться» из массива.
    Короче, ориентируйтесь на конкретные линейки под конкретные задачи. Лучше всего смотреть на сайтах производителей. Есть например специальные мало шумящие и мало греющиеся винты для домашней электроники.

    Те же подходы и к SSD, но область еще на сформировавшаяся, поэтому много тонкостей. Здесь мы ориентируемся по параметрам. Хотя все, что сказано в п., справедливо и для SSD.
    Ответ написан
    1 комментарий
  • Где сейчас арендовать сервера для VPN?

    v1t3man
    @v1t3man
    Не вздумайте смотреть на ihor.ru.
    Докопаться могут на ровном месте. А в оферте пишут, что не возвращают деньги по всем услугам.
    Ответ написан
    1 комментарий
  • Где сейчас арендовать сервера для VPN?

    PleasantNews
    @PleasantNews
    Застрял из-за КОВИД-19 в Бангкоке. Класс, да?
    Так полно же реселлеров - вот рекомендую inferno, он уже в бизнесе лет 20, там саппорта одного человек 15+
    Ответ написан
    3 комментария
  • Как пустить часть трафика через VPN?

    Vindicar
    @Vindicar
    Есть два подхода. В обоих случаях тебе нужен список заблокированных IP, его можно взять на антизапрете, например.
    Дальше вопрос, как пускать трафик.
    1. На хабре был материал про динамическую подгрузку маршрутов через BGP. Плюс - работает с любыми протоколами, и не требует дополнительной настройки со стороны проксируемого ПО. Минусы - ощутимо сложнее в понимании, на мой взгляд, да и с кроссплатформенностью могут быть проблемы. В статье приведена реализация на роутере Mikrotik.
    2. Использовать файл proxy.pac. Его можно сгенерировать скриптом типа такого:
    #!/bin/bash
    #!/bin/bash
    DNS_SERVER=8.8.8.8
    BLACKLIST_URL="http://antizapret.prostovpn.org/iplist.txt"
    #куда класть файл proxy.pac
    PACDIR=/var/www/html
    TMPLIST=/tmp/iplist.txt
    #домены, которые нужно пускать через прокси независимо от содержимого iplist.txt
    DOMAINS=(\
    rutracker.org \
    facebook.com \
    facebook.net \
    fbcdn.net \
    twitter.com \
    twitter.co \
    t.co \
    twimg.com \
    twitpic.com \
    periscope.tv \
    pscp.tv \
    )
    #качаем чёрный список
    wget -q --tries=10 -O "$TMPLIST" "$BLACKLIST_URL"
    # вытаскиваем IP наших прописанных доменов
    declare -a EXTRAIPS=()
    for domain in "${DOMAINS[@]}"
    do
            dig A "$domain" +short @$DNS_SERVER | grep -v '\.$' >>"$TMPLIST"
    done
    #в чёрном списке есть отдельные IP и есть подсети
    #также чёрный список очень длинный, поэтому кодируем его более компактно.
    IPLIST=`grep -Ex '^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$' "$TMPLIST" | awk '/^[0-9]+/ {split($1,b,/\./); printf("0x%02x%02x%02x%02x,", b[1],b[2],b[3],b[4]);}'`
    SUBNETLIST=`awk '/[0-9.]+\.[0-9]+\.[0-9]+\.[0-9]+\/[0-9]+/ {split($1,p,/\//); printf("[\"%s\", %s], ", p[1], p[2]);}' <"$TMPLIST"`
    #генерируем proxy.pac по шаблону
    #он проверяет домен на вхождение в фиксированные домены, а потом IP по списку.
    function templatePAC {
            NAME=$1
            shift
            DMNLIST=("$@")
            cat >"$PACDIR/$NAME" <<EOF
    function FindProxyForURL(url, host) {
      var domainblacklist = [
    EOF
            for d in "${DMNLIST[@]}"
            do
                    echo "  '$d'," >>"$PACDIR/$NAME"
            done
            cat >>"$PACDIR/$NAME" <<EOF
      ];
      var ipblacklist = [ $IPLIST ];
      var subnetblacklist = [ $SUBNETLIST ];
    
      function endsWith(str, suffix) {
        return str.indexOf(suffix, str.length - suffix.length) !== -1;
      }
      function numberToMask(n) {
        var m=[0,128,192,224,240,248,252,254,255];
        var r=[];
        for (var i=0; i<4; i++) {
          var p = (n > 8) ? 8 : n;
          r[i] = m[p];
          n -= p;
        }
        return r.join(".");
      }
      function maskMatch(ip, mask) {
        var m = numberToMask(mask[1]);
        return isInNet(ip, mask[0], m);
      }
    
      var blocked = false;
      for (var i=0; !blocked && (i<domainblacklist.length); i++)
        blocked = blocked || ((host == domainblacklist[i]) || endsWith(host, '.'+domainblacklist[i]));
      if (!blocked) {
        var ip = dnsResolve(host);
        for (var i=0; !blocked && (i<subnetblacklist.length); i++)
          blocked = blocked || maskMatch(ip, subnetblacklist[i]);
        blocked = blocked || (ipblacklist.indexOf(convert_addr(ip)) != -1);
      }
      if (blocked)
        return "PROXY ТУТ_ТВОЙ_ПРОКСИ:ПОРТ";
      else
        return "DIRECT";
    }
    EOF
    }
    # генерируем файл
    templatePAC proxy.pac "${DOMAINS[@]}"
    
    rm -f "$TMPLIST"

    Тогда можно отдавать этот proxy.pac любым веб-сервером (но лучше внутри VPN - если VPN не работает, то смысл в файле?), и настроить браузер на его использование.
    Минусы: работает только с браузерами, требует наличия вебсервера и полноценного прокси-сервера внутри VPN-сети (т.е. просто арендованный VPN не подойдёт, нужен VPS). Но мне показалось это проще в понимании, чем возня с BGP, да и требуется только наличие современного браузера и VPN клиента, без привязки к роутеру. Можно хоть на ноуте настроить, как я сделал.
    Ответ написан
    Комментировать
  • Если я подниму свой DNS сервер, я смогу регистрировать домены бесплатно?

    Zoominger
    @Zoominger
    System Integrator
    Нет.
    Доменные имена продают только сертифицированные регистраторы.
    Ответ написан
    Комментировать
  • Как разделить среду линукса на две?

    longclaps
    @longclaps
    Можно ли завести в линуксе двух юзеров?
    Ответ написан
    1 комментарий
  • Veeam или Acronis?

    @jahma48
    Акронис использую три года, сейчас есть предложение по veeam, попробовал бесплатный VEEAM BACKUP AND REPLICATINO COMMUNITY - буду настаивать, чтобы отклонили предложение. С интерфейсом Акрониса разберется слепой младенец с аутизмом, интерфейс же VEEAM - этот младенец и разрабатывал.. Разобравшись в трехзвенной (зачем-то) архитектуре, полдня бился чтобы сделать один единственный фул бэкап одной единственной машины. Но получал только ошибки типа "Failed", которые нигде никак не конкретизируются и не уточняются. Одни разделы INVENTORY и BACKUP INFRASTRUCTURE (угадай, в чем разница?) чего стоят. Ноут с Win10 автоматов упала в "Managed Servers" с типом Microsoft Windows Server... Пока что с Акронисом просто небо и земля.

    UPD: и контроллеры домена им восстанавливали, и ноды виндового кластера, гранулярно файлы с шар, письма из Exchange-ящика - ол эбав из суксидед.
    Ответ написан
    Комментировать
  • Как правильно "связать" системный блок с монитором и переферией?

    @sarathorn
    php программист, веб-дизайнер, коллекционер
    Сейчас аналогичная ситуация. Есть однушка без ремонта и появилось желание убрать ПК в другую комнату, чтобы была абсолютная тишина даже в нагрузке. Только в моём случае комп убирается в кладовку, которую от рабочего стола будет отделять только одна стена. Но, мне ещё требуется проложить ~15-20 метров HDMI до телевизора, чтобы можно было играть на телеке с геймпадом.

    Забудьте про тонкие клиенты и RDP. Если вам надо только печатать и сёрфить инет, то нет смысла в мощном ПК на лоджии. Берите просто тихий/бесшумный неттоп/моноблок или компьютер в формате флешки.

    Если хочется смотреть 4к видео и/или играть в игры, особенно в 4к, то никакие тонкие клиенты не обеспечат приемлемой скорости. В ютюбе на канале LinusTechTips можно поискать видео, как ребята городили 1 ПК с парой Xeon и, по-моему, с семью видеокартами, чтобы 7 человек могли на нём играть одновременно - всё было хорошо, но и подключалось всё напрямую. А вот когда они убрали сервак подальше и заменили прямое подключение на тонкие клиенты, то начались подлагивания. В простых казуальных играх и в стратегиях это не так критично, а в шутеры играть стало сложно.

    Я хотел решить доставку контента до телевизора через Steam Link. Это сняло бы много проблем: вся игровая периферия (мышь, клава, пара геймпадов) подключаются именно к Линку, а значит не надо тянуть USB удлинители. Да и всё решается одним Ethernet кабелем, который может быть даже 100мбит/с. Плюс у меня будет телек примерно на 32-42 дюйма, а значит в 4к смысла мало. Всё шло отлично до того, как я прочитал про лаги. незначительные, но впечатления от шутеров сильно портят.

    Сейчас у меня уже по потолку и по стене протянуть гигабитный кабель до области, где будет телевизор - пригодится. Но буду по плинтусу тянуть HDMI и как-то извращаться с USB.

    Кстати, на двух USB удлинителях по метру, подключённых друг в друга не заметил ухудшения работы мышки, клавиатуры, 3G-модема. Вай-фай адаптер жалуется на нехватку питания, думаю, это можно решить промежуточным хабом с доп.питанием.
    Например, два USB3.0 хаба, соединённые последовательно, не влияют на скорость чтения/записи USB3.0 хардов.

    Как всё-таки в итоге свою проблему решу я у себя:
    1) Мониторы подключаются к видеокарте обычными DisplayPort шнурками стандартной длины (хватает просунуть через стену);
    2) Мышь+клавиатура подключаются к USB хабу в мониторе, туда же подключается MicroUSB кабель для зарядки мышки и зарядки фитнес-трекера. Флешки и телефон (не для зарядки, чисто для обмена данными) во второй USB хаб на втором мониторе.
    3) Серьёзно думаю как решить вопрос с USB3.0 хабом... Нужно подключать несколько внешних хардов и иногда брать их с собой. Ходить до компа не хочется. Скорее всего придётся решить это связкой USB3.0 удлинитель на метр-два и USB3.0 хаб с длинным шнурком. Если будут помехи, то придётся брать 2 хаба.
    4) А вот телевизор и геймпад... Тут сложнее. По потолку и по стене уже не получится провести HDMI, так как стены уже покрасили... Придётся под плинтусом. В таком случае боюсь, что 15м может не хватить. На бОльшей длине, говорят, у HDMI могут возникать проблемы. Нашёл интересный адаптер HDMI over Ethernet... но цена вопроса около 12000 рублей. Из минусов: HDMI 1.3 (максимум 1080p@60) и небольшая потеря качества. Пожалуй, ещё раз померяю необходимую длину кабеля. Если 15+м, то буду решать через Steam Link или второй ПК с андроидом и SteamOS. Андроид чисто для эмуляторов PS1, Dendy, Sega, PS2.

    UPDATE.
    Нашёл просто бомбически крутую штуку, которая избавит вас от всех проблем! Увы, для меня будет достаточно дорогой и излишней, хотя тоже возьму идею на вооружение.
    Elgato thunderbolt 2 Dock.
    На компьютере должен быть разъём thunderbolt 2. В комплекте 50м оптического и очень тонкого thunderbolt кабеля. На самом доке есть 3 штуки USB3.0, есть аудио вход и аудио выход, ещё пара thunderbolt'ов и HDMI 1.4b, который может 2160p@30. И есть возможность использовать Thunderbolt как mini-DisplayPort, то есть гонять 4К в 60Hz.
    Вам нужно купить thunderbolt контроллер для своего ПК (цен не знаю) и такое устройство (230$ + доставка из-за бугра). Это лучшее решение для вашей проблемы. Удобно, просто, быстро и без потерь. Всё через один тонкий кабель.
    С другой стороны... thunderbolt 2 имеет 20Гбит/с пропускную способность, поэтому пару 4К мониторов вы к нему не подключите, а вот один 4К и одни ФуллХД вполне. В любом случае, это лучшее решение из всех, что обсуждались в этой ветке.
    Ответ написан
    3 комментария
  • Как отдавать верстку под битрикс?

    Лучше, чтобы натягивал тот же человек, кто верстает. Там есть куча имен для классов и id для блоков типа bx-panel-top, bx_incl_area_2 и т.д, если вы случайно используете их в своей верстке, то их придется либо переименовывать в ходе натяжки, либо верстка будет плыть под админом и контент-менеджером.

    Так же нужно избегать в своей верстке повторения имен классов, используемых в популярных стандартных компонентах типа catalog-section-header. По хорошему, вам нужно придумать какой-то префикс уникальный, например, по названию проекта и к каждому божьему классу и идентификатору в своей верстке его лепить - иначе точно в какое-то существующее имя попадете.

    Потом еще в ядре битрикс идет куча js библиотек, они лежат в папке /bitrix/js/main/, и если вы используете какую-то из них в верстке, например, тот же jquery - то нужно подключать именно от туда - не подключать другую версию существующей там библиотеки из другого места, иначе это потенциальные проблемы.

    Так что это большой геморрой, когда эту работу делают разные люди.
    Ответ написан
    2 комментария
  • Где взять wysiwyg редактор?

    lazalu68
    @lazalu68
    Salmon
    Вот целый список действующих wysiwyg-редакторов: https://github.com/JefMari/awesome-wysiwyg
    Ответ написан
    Комментировать
  • Где взять wysiwyg редактор?

    joeberetta
    @joeberetta Куратор тега JavaScript
    Читай: https://epdf.pub/google-for-dummies.html
    Ответ написан
    Комментировать
  • Обязательно подавать питание на процессор 8 pin + 8 pin на x570 master?

    @nehrung
    Не забывайте кликать кнопку "Отметить решением"!
    два по 8 pin на CPU
    Ваш проц пожирает по 12 вольтам мощность 105 ватт - это будет ток примерно 9 ампер. Этот ток идёт по 8 контактам (если задействовать оба разъёма, они там наверняка в параллель), или по четырём, если задействовать только один.
    Мой вердикт: для 9 ампер достаточно 4-х контактов (т.е. одного разъёма), использовать оба излишне. БП имеет один - вот его и достаточно.
    Переходники с Molex крайне нежелательны, Molex не рассчитан на такой ток, он будет подплавляться и когда-нибудь это приведёт к КЗ.
    Обязательно нужно думать о замене БП или в целом хватит питания от старого БП?
    Менять мощный киловаттный БП из-за отсутствия второго 8-проводного хвоста??? У вас что, денег избыток?
    Если уж невтерпёж использовать второй хвост, то вскройте БП и припаяйте этот хвост прямо на плату, без переходников, на те же точки, что и имеющийся.
    Ответ написан
    Комментировать
  • Какое железо подобрать для виртуализации с пробросом видеокарты в гостевую ОС?

    @Pagliaccio Автор вопроса
    Внедряю CRM
    На странице https://en.wikipedia.org/wiki/List_of_IOMMU-suppor...
    указано, что IOMMU поддерживают чипсеты X370 и X470 при условии поддержки со стороны разработчика материнской платы. Буду сначала подбирать плату, а затем точечно проверять её функции через форумы или вопросы производителю.
    Там же увидел, что получилось успешно пробросить в qemu-kvm видеокарту на основе NVIDIA GTX 1050, буду тоже на неё ориентироваться (Nvidia нужна ещё для машинного обучения, под AMD библиотеки ещё слишком сырые...)
    Ответ написан
    Комментировать
  • VPS после покупки - нужна ли какая "защита"?

    1. Для начала настройте файрвол, закройте все порты, которые не используете
    2. Для доступа к vps настройте ssh желательно с приватным ключом
    3. Настройте безопасность в php, nginx, apache,..

    4. Далее настройте файрвол полностью (заблокируйте хождение и количество пакетов, которое не используются на сервере)
    5. Настройте бекап сайтов для сохранения на другом сервере
    6. Настройте мониторинг, чтобы отслеживать потребление ресурсов, попытки доступа на сервер и другие перебои в работе сервисов.

    Теперь защита готова процентов так на 50% )
    Ответ написан
    3 комментария
  • Как отключить проверку файлов при загрузке через браузер Windows 10?

    tsklab
    @tsklab
    Здесь отвечаю на вопросы.
    Отключить проверку в браузере. Добавить исключение Защитника для папки загрузки. Повесить ключи от квартиры снаружи у двери.
    Ответ написан
    4 комментария
  • Парсинг сайтов. Нужен совет?

    Есть книга:

    Скрапинг веб-сайтов с помощью Python.Р.Митчелл - там все, что тебе нужно про парсеры.

    P.s. говорят, что даже в открытом доступе лежит.
    Ответ написан
    4 комментария
  • Как правильно искать поля типа NULL через LIKE?

    Melkij
    @Melkij
    PostgreSQL DBA
    Вы начните с вопроса - а что вы получить-то хотите? Исходя из этого уже конструируйте запрос. Потому что все 3 запроса в вопросе полностью корректны и именно что и должны вести себя различным образом.

    С вариантами типа функция(поле) like 'pattern' - аккуратнее. Для большинства субд это обозначает сознательный отказ от использования индексов по этому полю. Для like '%pattern%' впрочем это и так справедливо для любых btree, не префиксовый поиск вести по btree штука закономерно не эффективная.

    PS: и ой большое опасение у меня по этому фрагменту что у вас sql инъекции открыты во всю свою ширину.
    Ответ написан
    5 комментариев
  • Как в nginx удаленно править раздел /rtmp в файле конфигурации?

    OrlovEvgeny
    @OrlovEvgeny
    golang developer / DevOps
    - Nginx + Lua,
    у lua есть такая штука как lua_shared_dict, это hashmap которая работает атомарно независимо от количества воркеров в nginx. По сути ты можешь передавать аргументом в nginx ссылку на стрим
    что-то вроде
    /stream-update?link=https//domain.com/super_stream_porn.....


    а в локейшене /stream-update nginx что-то вроде
    local cache = ngx.shared.ourmegacache // ourmegacache - имя стора
    local args = ngx.req.get_uri_args()
    local link = tonumber(args.link) or ""
    cache:set('url', link, 3600)


    в локейшене который отдает стрим нужно просто забирать ссылку из мапы
    local link = cache:get('url')

    инфа тут - https://github.com/openresty/lua-nginx-module#ngxs...
    в целом могу сказать что lua_shared_dict в данном случае будет работать быстрее редиса или считывания из файла.
    Ответ написан
    Комментировать