Задать вопрос
Ответы пользователя по тегу Хранение данных
  • Какого облачного IT-провайдера сейчас можно выбрать?

    @rPman
    Никогда не ставьте на одного провайдера, арендуйте несколько машин (минимум две в разных локациях) и настраивайте инфраструктуру на отказоустойчивый конфиг (простейшая конфигурация - репликация базы данных и файлов), можно вместо тяжелых инструментов управления использовать штатный incus (что то между docker и lxd плюс ui для управления этим как кластером виртуалок).

    Резервируйте все, данные, сетевые каналы связи (даже просто два канала по разным протоколам уже плюс), управление (у вас должен быть резервный план на случай если админ 'заболел') и устраивайте учения, приближенные к реальности, проверяйте бакапы, проверяйте как вы удержите на плаву сервис при смерти сервера, разрыве связности интернета (ой как это сейчас актуально), увольнению ключевого сотрудника и т.п.
    Ответ написан
    4 комментария
  • Как организовать обучение нейронной сети?

    @rPman
    Как лучше организовать обучение, если датасет занимает 30+ Тб данных?
    процесс обучения нейросетей в общем выглядит следующим образом.

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

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

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

    В итоге - исходные данные буду считываться постоянно и непрерывно много много раз (тысячи-сотни тысяч раз).

    В вашем случае очень глупо (неоправданно дорого) прогонять через нейросеть сами данные. Поработайте с ними, подготовьте обучающий датасет (простой пример, если вам нужно на изображениях искать другие изображения, то вы должны их руками или иными способами, вырезать из исходных изображений, и уже на основе нового датасета проводить обучение, если данных очень много, то можно обучать сначала на подмножестве данных, а потом полученную нейросеть пытаться запряч на обработку оставшегося датасета, параллельно верифицируя результат и создавая новый датасет из ошибок и уже на основе этого датасета пытаться что то переобучить/дотюнить). Попробуйте создавать несколько сетей разного размера на базе подмножества данных, так вы сможете построить график качества сети от ее размера (например зафиксировав время обучения) или наоброт график времени обучения для получения одинакового результата... полученные графики можно использовать для оценки, на каком предельном значении размера какие потребуются затраты на обучения. Точно так же можно посчитать зависимость результата от объема подмножества данных от общего датасета.

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

    Процесс обучения нейросети - творческий, нет простых шагов, которые бы давали гарантию результата.
    Ответ написан
    Комментировать
  • Как хранить публичный медиа-контент сайта?

    @rPman
    так как интернет в россии сломан, то нужно топать к привилегированным компаниям типа газпроммедиа или яндекс, у яндекс точно есть облако, тарифы на сайте смотри.
    Ответ написан
    Комментировать
  • Где можно хранить данные пользователя для синхронизации?

    @rPman
    Сами же просите без бакэнда и сами же предлагаете варианты с чужими бакэндами google/yandex.

    github pages подходят, если тот кто выкладывает изменения будет их делать через git, причем это максимально удобный вариант для вас но мне кажется нарушает политику использования самого github (хотя, смотря что вы там выкладываете).

    Настоятельно рекомендую не мучиться, найти vps-ку за условный 1$ в месяц и разместить там минимальный баэкнд. Не нужно пилить сложный, это вообще беда современных веб разработчиков, оверинженеринг 10k%
    spoiler
    (я видел буквально такие решения, когда вместо странички на 20кб с javascript и рюшечками, предлагают 10-мегабайтовые решения, с компиляцией css с исходниками на сотни килобайт)


    p.s. есть решения через webrtc, если у вас есть сторонний канал передачи пары пакетов с данными инициализации (условно два пользователя друг другу qr-коды показали), метод в принципе рабочий, но для стабильного результата нужно будет реализовывать целую p2p сеть между пользователями, что бы удерживать подключение при разрывах связи. Ни в коем случае не рекомендация, это тупо очень сложно и главное никому не нужно.
    Ответ написан
    Комментировать
  • Как лучше подключать СХД к Proxmox Backup?

    @rPman
    При монопольном доступе к данным (в ситуации с резервным копированием обычно это так, когда в один момент только один сервер работает с образом/архивом) наилучшим с точки зрения производительности - это блочные системы публикации хранилища, потому что операционная система может максимально эффективно выбирать что и когда записывать и читать, использовать кеши, асинхронную запись и т.п. лучше всего это видно на мелких файлах или даже базах данных.

    Самый известный протокол iscsi (лично я считаю его в большинстве ситуаций, особенно маленьких организаций и дома - перегруженным, но спасибо есть простые сервера для самодельных nas типа linux istgt).
    До него был еще проще (с точки зрения нагрузки на сервер/nas) NBD (network block device) - очень простой и эффективный по ресурсам для NAS (особенно для слабых машин).
    Есть еще старый AOE (ata over ethernet), он позволяет публиковать диск/образы по ethernet вне ip/tcp стека (т.е. минус оверхед от организации сети).
    Еще нагуглил NVMe over tcp (я знал что есть по fibre такая технология, но что ее сделали по tcp я не знал).
    Все это прекрасно работает в linux, но нужно смотреть поддержку NAS.

    p.s. помимо организации самой работы, нужно думать что произойдет во время сбоя связи между сервером и NAS, к примеру если диски примонтированы mount (особенно если диски примонтированы на хост машине а не каждый диск внутри VM) то разрыв связи создаст проблемы на сервере, подвисание с длительным периодом решения этой проблемы.

    Так же нужно понимать, что ппубликация блочного устройства подразумевает что он будет монтироваться (т.е. к нему потребуется полный не контролируемый доступ, максимум readonly можно выставить) на хост системе или внутри виртуальных машин, т.е. организационные сбои (ошибки администратора) или к примеру вирусы, смогут уничтожить копию на этом диске. Правильная система резервного копирования должна работать наоборот, backup-сервер должен подключиться к машинам с данными, и копировать их по своей логике и правилам.

    По поводу организации резервного копирования, есть неплохие идеи при использовании мощных ZFS/btrfs файловых систем, у них встроенная и бесплатная по ресурсам система организации снапшотов, а главное есть возможность отправлять по сети/или хранить разницу между указанными снапшотами в виде файла (полный аналог diff/patch для текстов), и удаленно применяя эти патчи к холодной резервной копии (или просто хранить в виде файлов, но при необходимости их придется применять к стартовому состоянию на бакап сервере в правильном порядке без пропусков), на текущий момент это наилучший способ организации инкрементального резервного хранилища, универсально подходит под любые нужды, хоть VM хоть типовой сервер.
    spoiler
    Т.е. держишь образы виртуальной машины в файлах (или образах zfs). Для работы нужно хранить снапшот того состояния, что развернут на втором сервере, и в момент старта резервного копирования, создавать новый снапшот, запрашивать разницу между ними (это 'бесплатная' операция, работает максимально быстро, на скорости чтения данных с диска только разницы) и после успешного его сохранения, удалять старый снапшот. При создании системы резервногоо копирования понадобится стартовое состояние диска, его получают как initial снапшот, и с этого момента пропускать и нарушать порядок инкрементальных копий нельзя.

    Такие резрвные копии можно делать очень часто, хоть раз в несколько секунд, так как не несут накладных расходов на получение инкрементальной копии кроме как на ее копирование, когда как любые иные файловые системы или инструменты поверх них, либо роняют производительность записи, либо требуют долгий анализ данных для получения инкрементальной копии
    Ответ написан
    Комментировать
  • Что делать если не очищается место на диске C ssd?

    @rPman
    Запустите штатную утилиту "Очистка диска", из пуск. При запуске сразу нажать кнопку 'Очистить системные файлы' (потребует повышение прав).
    Все предлагаемые пункты можно безопасно выбирать, для удаления выбранных категорий файлов нажать ОК.

    На второй закладке 'Дополнительно' утилиты 'Очистка диска' внизу кнопка 'Очистить' для теневых копий восстановления. Это удалит теневые копии, которые не видно в проводнике, но они создаются например перед обновлением системы. Если вы сами не создавали теневые копии то эта операция так же совершенно безопасна.

    Теневые копии например используются системой обновления, перед каждым обновлением создается копия, на состояние которой можно откатить операционную систему, если обновление что то сломает (это в настройках службы обновлений), если текущие созданные удалить, просто исчезнет возможность откатиться назад по простому (но само собой останется способ удаления обновлений вручную по одному)
    Ответ написан
    Комментировать
  • Как настроить дедупликацию btrfs в Asustor (AS6804T)?

    @rPman
    дедупликация btrfs требует определенную версию модуля ядра. Рекомендую утилиту duperemove, она как раз для разовой операции, требует минимум 4.5 версию ядра (вроде бы сам функционал появился раньше

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

    Лучшим решением будет подключить диски к полноценной linux, провести операцию дедупликации и вернуть назад.
    Ответ написан
  • Какое есть бесплатное решение для организации файлообменника?

    @rPman
    Syncthing, в любую сторону, любая платформа
    Ответ написан
    Комментировать
  • Как бороться с растаскиванием/многократным дублированием файлов/папок на файловом сервере?

    @rPman
    Научите делать ярлыки, вместо копирования.

    Но вообще то, проблема и решение зависит от причины, зачем пользователи это делают. Возможно использовать общий файл им не удобно? Общий файл одновременно сложно использовать по причине программы, его открывающей?

    Решение может оказаться на столько дорогим (переделать программу) что проще подключить административный ресурс, а следить за исполнением внешними скриптами... Кстати, теми же скриптами можно около дубликата создать ссылку на оригинал?
    Ответ написан
    Комментировать
  • Как реализовывать пункт ТЗ "Требования сохранности информации при авариях"?

    @rPman
    У онлайн резервирования данных ценник реализации растет экспоненциально от допустимого лага во времени назад от момента аварии, до которого можно терять данные.

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

    При возникновении выбора, купить специализированное железо или завернуть как очередная виртуалка на сервере приложений - выбирать первое.

    Если есть возможность, закладывать онлайн резервирования и восстановление в само приложение (те самые прогоны логов действий пользователей), как ещё один способ а не единственный.

    Само собой, резервные копии территориально должны быть разделены с рабочими данными... ну и регламенты доступа к данным, запрет доступа со стороны (сервер резервной копии инициирует подключение и авторизацию а не наоборот).

    Куча нюансов от того какой софт крутится с данными, как бизнес к простоям толерантен, допустимы ли лаги при модификациях (пока сервер репликации не скажет что все ок, все будут ждать), держишь ли ты запасное железо в загашнике, как регулярно проверяешь ли бакапы на восстановление и проверяешь ли результат, добавляешь ли в копию софт и инфраструктуру для его запуска (а то через несколько итераций обновлений старый бакап станет тыквой), достаточная ли документация и проводишь ли ты текстовые стресс прогоны с сотрудниками на форс-мажор (мало сохранить данные, нужны люди, способные в срок из вернуть),..
    Ответ написан
    2 комментария
  • Где дешевле всего купить 10 Тб облачного места?

    @rPman
    Криптовалюта siacoin, оплата в криптовалюте, хранение дешевле amazon glacier (большая часть цены - трафик download уже сохраненного себе назад)
    https://siascan.com/
    Average storage price Average download price Average upload price
    $1.33/TB $3.72/TB $0.11/TB
    Цены приблизительные в месяц.

    С точки зрения работы это фактически торренты (по умолчанию 3х резервирование и разделение на 40 мест хранения), все участники финансово заинтересованы продолжать хранить и раздавать данные, все зашифровано, децентрализовано.

    Интерфейс на уровне типовых пользовательских приложений dropbox/onedrive (по умолчанию без веб интерфейса), есть api провайдеры (все локально без единой точки отказа) совместимого s3, есть драйвер файловой системы linux fuse и куча всего, дольше изучать...

    p.s. с точки зрения майнеров проект не привлекательный, из-за странного поведения разработчиков, но так как у него есть использование, цены на эту криптовалюту не манипулятивные трейдерами. Проект живет почти 9 лет уже, так что имеет смысл для рассмотрения.
    Ответ написан
    7 комментариев
  • Как бюджетно создать хранилище и сервер для камер видеонаблюдения?

    @rPman
    Не смотрите в сторону малинок почти что никогда (хотя они хороши в робототехнике, там хороший набор карт расширений) - отстойнейшая поддержка ОС и всего вокруг.

    Выбирайте интелевские x86 SoC, J серия с mitx платами очень хороша, и по ценам, и по производительности на ват. На их основе собирать маломощные (хотя J5xxx очень не плохи да еще и с 16gb ram) домашние сервера и рабочие машинки.

    Что бы выбрать хранилище, нужно сначала померить, какой объем даннх необходимо сохранять.. не приблизительно, а на практике, попробовав часть из камер попробовать сохранить на любой десктопной машине с ssd (что бы уж наверняка)... и это будет трафик только на запись. У hdd есть неприятная особенность, ронять скорость работы при одновременной работе нескольких приложений... если одновременная запись с нескольких камер может считаться одним потоком (и будет работать на максимуме возможностей устройства, а это порядка 150мбайт/с даже для дешевейших toshiba 3tb 5400rpm) то достаточно одному пользователю начать считывать видео из истории, скорость может упасть от 2х до 10х раз (зависит от софта, если данные будут считывать большими кусками порядка десятков/сотен мегабайт, то только уронит скорость в половину).

    p.s. твои камеры навряд ли дадут больше 2мбит/с, а 19 таких - от силы 5мбайт/с, т.е. такой трафик потянет любой диск даже в худшем
    Ответ написан
    2 комментария
  • Как анализировать JS и PHP ошибки на своем сайте?

    @rPman
    Информация обо всех событиях складывать в машиночитаемом виде, не важно каком, выбор зависит от задачи, от нагрузки, от наличия денег и т.п.

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

    Самое простое - это текстовый лог в формате jsonl, это сериализованный в json по строчно на каждое событие (а атрибуты события - атрибуты объекта json). В некоторых случая json не поддерживается, например какой-нибудь fail2ban его не умеет, но умеет с помощью регулярных выражений извлекать данные из текста, тогда данные можно собирать и разделять в виде, удобным для последующей обработке регулярными выражениями.

    Как только объемы событий выходят на гигабайты, текстовые логи становятся неудобными (а может и раньше) и данные лучше складывать в какую-либо базу данных... кому то нравится nosql (неудобна для анализа), кто то сразу в sql базы складывает (они удобны тем что могут хорошо масштабироваться на несколько устройств или машин). Те, кому нужно совсем много данных, могу задуматься о предварительном анализе данных через промежуточный сервис (т.е. для того что бы оставить сообщение, приложение по сети отправляет лог-серверу запрос), который делает минимальный анализ, выделяет что сохранить и как, проводит базовую аналитику и сохраняет в базы данных (лог база данных может быть сложнее чем пара табличек).
    Ответ написан
    Комментировать
  • Совет по организации NAS?

    @rPman
    Важнейший вопрос тут - для каких задач будет использоваться NAS.

    1гбит будет давать до 110мбайт/сек, для hdd особого смысла выше нет (только если это будет бесплатно, что обычно не так, так как 2.5Gb коммутаторы все еще дорогие), так как высокие скорости (200мб/с) достигаются только при линейном копировании больших файлов и при отсутствии фрагментации... во всех остальных случаях скорость может упасть 10кратно... и не утилизирует сетевой канал.

    Второе - по какому сетевому протоколу будет обеспечиваться доступ к файлам... Например самые быстрые - iscsi/nbd/aoe (потому что позволяют кешировать локально даже записи, ОС знает до каких пор), но они только блочные устройства транслируют... дальше идет linux nfs и где то в конце майкрософтовский smb (он на мелких файлах может чуть ли не кратно ронять скорость)

    Теперь важный ответ про RAID, никогда не используйте дешевые 'аппаратные' raid контроллеры (не серверные, те что с кешем записи и батарейкой), пользы они вам не принесут никакой а вот гемороя административного добавят (например вендорлок, при смене материнки/контроллера пересобирать рейд). Пользуйтесь программным рейдом, он есть как в windows штатно (даже в десктопных ОС если pro версия) так и конечно в linux (mdadm или штатная фича файловых систем btrfs/zfs).

    По поводу конфигурации... подбирайте корпус mini pc что бы диски были внутри и подключались по своему штатному коннектору, в вашем случае sata, так как внешние usb контроллеры могут добавить багов (например не будет виден smart дисков или уберут поддержку trim для ssd) и главное, конструктивно эти наружу торчащие провода можно задеть и сбросить диски 'со стола'... NAS должен быть удобным и монолитным, и 'с ручкой для переноса'.

    p.s. покупать аппаратный raid с корпусом (домашние ревизии) имеет смысл когда есть желание получить готовый результат без усилий, за это и идет доплата в цене, по сравнению со своей сборкой, выбирайте либо вы собираете либо за вас. Ну и функционал готового рейда обычно лимитирован софтом, который там запущен, когда как свой linux - максимально полнофункционален но конечно не так удобен, плюс никто не мешает и тут такой же софт поставить с UI.
    Ответ написан
    4 комментария
  • Можно ли ускорить запись на ZFS через кэш?

    @rPman
    Zfs не умеет кешировать записи.

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

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

    Торренты лучше кешировать средствами клиента, например это умеет tixati, опция move on complete
    Ответ написан
    1 комментарий
  • Как проверить 500 000 файлов word,exel,pdf ,txt что они не битые?

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

    Так же можно делать все то же самое из любого другого языка программирования, я помню делал что то похожее на c# в visual studio, это удобнее чем писать на vbscript.
    https://learn.microsoft.com/ru-ru/dotnet/csharp/ad...
    Ответ написан
    2 комментария
  • Куда класть soho/стартап бэкапы?

    @rPman
    Мне кажется вы перечислили самые дешёвые варианты, amazon s3 glacier deep будет тоже уровня цены.

    Если нужна какая то независимость от санкций (серая зона), то предлагаю посмотреть на криптопроекты типа siacoin, инструментарий и сообщество в стагнации, но вот как хранилище работает до сих пор.

    Не представляю что то дешевле чем хранить данные там (порядка 2..5$/м за терабайт +-)... Когда-то по тестам скорость там получалась сотни мегабит, но логично лучше тестировать в своей локации, это ведь как торренты.

    https://siascan.com/ смотреть на цену тут с осторожностью, так как могут не учесть x3 резервирование по умолчанию, лучше поставить клиент и смотреть цены там.
    Ответ написан
  • Скачанное видио не удаляется на телефоне, что делать?

    @rPman
    В галерее показаны иконки, так происходит, если файл удалить 'сторонними' средствами а иконки (это отдельные файлы, по уму лежат тут же но переименованные с точкой в имени в начале) нет.

    Достаточно удалить файл еще раз из галереи и он исчезнет.

    Так же помним, что гугловская галерея собирает файлы из нескольких мест - внутренняя память телефона, внутреннее хранилище и карта памяти (возможно сюда добавляется еще и облачное хранилище), все это будет свалено в кучу и понять что где из интерфейса нельзя.
    Ответ написан
    Комментировать
  • Как создать одно рабочее пространство на двух компьютерах?

    @rPman
    Все правильные способы сказали (например синхронизация с помощью syncthing, в т.ч. через промежуточный носитель типа смартфон, в т.ч. без интернета), поэтому предложу еще один.

    Удаленное управление.
    Дома или на сервере настраиваешь свое рабочее окружение, а затем подключаешься к терминалу этого сервера каким-либо инструментом удаленного управления. Для этого потребуется наличие интернета/подключения до сервера (вырожденный случай - сервер в багажнике автомобиля на парковке под окнами, связь по wifi).

    Если сервер linux и низкого качества связь - то настоятельно рекомендую x2go (нет нативного клиента только под смартфоны, и то можно использовать debia-no-root или аналоги)
    Если сервер windows и так же некачественная связь - rdp (с оговорками, нормальная версия сервера только в серверных ревизиях и при использовании серверного оборудования)

    Так же, при наличии широкого канала в десятки мегабит и низких пингах, есть реализации удаленного управления типа vnc/anydesk/teamviewer/rustdesk и особняком steam link (эта технология невероятно эффективно передает данные и в наличии реализации даже под очень слабое и почти не поддерживаемое железо (у меня есть старый планшет android с очень слабым процессором, на нем youtube работает но запускается по минуте, так вот только steam link как инструмент удаленного управления на нем работает без единого лага, запущенный youtube в браузере на компьютере транслируется без каких либо задержек и искажений картинки в гигабитной локальной сети)
    Ответ написан
    Комментировать
  • Как безопасно заливать файлы на свой сервер с других компов извне?

    @rPman
    Достаточно открыть ssh доступ (можно сменить порт с дефолтного 22 на что то другое, меньше будут беспокоить сканеры ботов), все остальное (большая часть инструментов) будут работать через него.

    scp - штатный от ssh, возможности как у обычного cp, не возобновляет прерванное копирование
    rsync - умеет работать через ssh, ключ --partial автоматически дозагрузит прерванное копирование, простой скрипт будет перезапускать процесс копирования пока он не завешится корректно
    while ! rsync -avz --partial --progress --inplace --append-verify --rsh=ssh /путь/к/локальному/файлу пользователь@удаленный_хост:/путь/к/удаленному/файлу; do
      echo "Переподключение через 10 секунд..."
      sleep 10
    done
    Ответ написан
    Комментировать