А можно ли?
Никогда не пользовался, а гугл выдаёт совсем не то.
Можно ли заблокировать возможность для присоединения ПК (win10/11) к домену (AD)? Слышал нечто подобное, но это было достаточно давно, в эпоху вин ХР.
Куда могло исчезнуть дисковое пространство? (5/5)
Подытожим этот короткий цикл последним случаем.
Файловая система только для чтения
Последний из рассматриваемых кейсов может произойти из-за проблем с самим жёстким диском:
Мы не можем создать новый файл, хотя явно видно, что дисковое пространство у нас ещё есть. Посмотрим в каком режиме смонтирована файловая система:
Вывод mount даёт нам подсказку, что наша rootfs смонтирована только для чтения (ro).
Теперь имеет смысл приступить к чтению системных логов, чтобы лучше понять что именно произошло:
В логах видно, что ядро перевело файловую систему в режим read-only из-за - sysrq: Emergency Remount R/O.
Объяснений произошедшему может быть достаточно много. Тут сложно вывести какую-то общую рекомендацию для решения. Что нужно будет сделать наверняка: просмотреть сообщения dmesg, более детально логи системного журнала, сделать SMART тест жесткого диска.
Заключение
Когда ядро сталкивается с проблемами в работе файловых систем, оно ведёт себя в соответствии с аргументом error= команды mount. Этот аргумент может принимать следующие параметры:
errors=continue - игнорирует ошибки, однако помечает файловую систему как некорректную, после этого монтирование продолжается.
errors=remount-ro - перемонтирует файловую систему в режим "только для чтения".
errors=panic - аварийно завершает процесс монтирования и блокирует работу системы.
Нужное поведение при монтировании можно настроить в /etc/fstab.
Нельзя забывать, что подобная ошибка сообщает о вероятной проблеме с железом, поэтому в случае возникновения такой ошибки в первую очередь необходимо будет проверить корректность состояния физического устройства.
В Питере шаверма и мосты, в Казани эчпочмаки и казан. А что в других городах?
Мы постарались сделать каждый город, с которого начинается еженедельный заед в нашей новой игре, по-настоящему уникальным. Оценить можно на странице совместной игры Torero и Пикабу.
Реклама АО «Кордиант», ИНН 7601001509
Куда могло исчезнуть дисковое пространство? (3/5)
Новый день и новый алерт от системы мониторинга.
Смотрим логи системы:
Так, опять закончилось место. Что на этот раз?
Любопытно. Всего у нас 4.9 гигов. 4.6 из них использовано. Но занятыми почему-то считается все 100% дискового пространства. Куда делось 300 метров?
В поисках ответа, рассмотрим более детально файловую систему с помощью tune2fs:
Так, у нас тут есть какие-то зарезервированные блоки. Для того, чтобы прояснить что за блоки нам встретились, вновь обратимся к Linux API исчерпывающее руководство от Майкла Керриска, стр. 312 (просто удобно делать все отсылки к одной книге, хотя в Advanced Programming in the Unix Environment про это тоже можно почитать)
Многие «родные» файловые системы UNIX и Linux поддерживают представление о резервировании некоторой части блоков файловой системы для суперпользователя на тот случай, когда файловая система становится заполненной. Суперпользователь по-прежнему может войти в систему и принять меры по устранению данной проблемы. Если в файловой системе есть зарезервированные блоки, то разность значений полей f_bfгее и f_bavail в структуре statvfs сообщит нам, сколько блоков зарезервировано.
То есть место было зарезервировано для того, чтобы поддержать работу системы на тот случай, если свободного места на диске вообще не останется.
Теперь давайте слегка изменим настройки файловой системы, чтобы у нас появился небольшой запас пространства, и немного времени на решение проблемы:
Отлично, теперь есть немного места, и можно более-менее в штатном режиме начать поиск решения.
Заключение
многие файловые системы резервируют дисковое пространство для суперпользователя. Это механизм защиты, позволяющий поддерживать работу системы (и разрешать администратору вход в систему), когда на диске не осталось свободного места.
объем зарезервированного пространства можно изменить. Это сделает некоторое количество блоков пригодными для использования и поможет вам выиграть немного времени. Но будьте осторожны, вам все равно нужно проанализировать, что происходит, и исправить это должным образом.
на больших файловых системах (>50–100 ГБ) резервирование 5% является излишним. Так что возможно вы захотите проверить свою файловую систему и уменьшить количество зарезервированных блоков (однако к любому тюнингу и оптимизации нужно подходить с умом и без фанатизма).
Куда могло исчезнуть дисковое пространство? (2/5)
Разрежённые файлы (файлы с "дыркой")
Другая проблема может появиться, например, во время создания бэкапа:
Тут возникает вопрос. А как из каталога размером 12 мегабайт получился архив на 426 мегабайт, который занял всё место?
Давайте глянем, какой самый большой файл располагается в каталоге /var/lib/docker:
Интересно, откуда у нас образовался 100 гиговый файл на разделе размером в 5 гигабайт?
Копнём дальше:
Наиболее вероятно, дальнейшее гугление симптомов приведёт вас на страничку wiki, посвящённую разрежённым файлам. И да, здесь мы имеем дело именно с ними (Unix - Профессиональное программирование, стр 157, или М.Керриск - Linux API исчерпывающее руководство, стр. 118).
Да, в описываемом случае Docker использовал в качестве драйвера хранилища Devicemapper, который на данный момент устарел (рекомендуется использовать или overlay2 или fuse-overlayfs для rootless режима). Однако в целом использование разрежённых файлов довольно распространённое решение для хранения файловых систем в файлах, поэтому для devicemapper оно не уникально, и может встречаться достаточно часто.
Заключение
Большинство современных файловых систем поддерживают разрежённые файлы. Полный список доступен на вики.
Разрежённые файлы - это файлы которые не используют блоки до тех пор, пока туда не будут записаны данные.
Разрежённые файлы легко могут быть найдены с помощью однострочника:
где:
указывает что нужно искать на машине все объекты с типом файл
Эта часть распечатает «разреженность» файла и его полное имя.
На этом этапе вывод будет выглядеть примерно так:
Если первое число меньше 1.0, то файл считается «разреженным».
Дальше мы фильтруем вывод с помощью awk:
и получаем список разрежённых файлов.
Файлы можно конвертировать в разрежённые и обратно
Некоторым утилитам (tar, rsync) нужно передать дополнительные аргументы (например "--sparse" для tar) для работы с разрежёнными файлами
Linux не один, есть и другие ядра
Кроме Linux, существуют и другие ядра операционных систем.
Некоторые из них включают:
Windows NT Kernel: Ядро операционной системы Windows, которое обеспечивает управление ресурсами, планирование процессов, ввод-вывод и другие основные функции.
macOS Kernel (ранее известный как XNU): Ядро операционной системы macOS, разработанное на основе ядра Mach и FreeBSD. Оно обеспечивает управление памятью, планирование процессов, ввод-вывод и другие функции.
FreeBSD Kernel: Ядро операционной системы FreeBSD, которое является открытым исходным кодом и базируется на UNIX. Оно обеспечивает управление памятью, планирование процессов, ввод-вывод и другие функции.
Solaris Kernel: Ядро операционной системы Oracle Solaris, которое предоставляет управление ресурсами, планирование процессов, ввод-вывод и другие функции. Оно также поддерживает многопоточность и виртуализацию.
AIX Kernel: Ядро операционной системы IBM AIX (Advanced Interactive eXecutive), которое обеспечивает управление ресурсами, планирование процессов, ввод-вывод и другие функции. Оно также поддерживает многопоточность и виртуализацию.
Интересные факты и фичи языков программирования у нас в канале, заходи :)
Свободная и доступная память в Linux
Несмотря на достаточно спорный заголовок, рассуждения ниже будут отнюдь не о безнравственном поведении памяти в Linux.
Время от времени нам полезно знать как именно наша система использует память, так что в статье будет предпринята попытка объяснить разницу между свободной памятью, и доступной.
Свободная vs. Доступная память
Давайте сразу к делу. Итак, что такое свободная память, и чем она отличается от доступной.
Свободная память (free memory) - это объем памяти, который сейчас ни для чего не используется. По этой причине, особенно на серверах, удобно воспринимать свободную память, как тратящуюся впустую. После того, как ваши приложения/процессы были запущены и прошло значительное время безотказной работы, это число почти всегда должно быть небольшим.
Доступная память (available memory) - это объем памяти, который доступен для выделения новому или существующему процессу. Доступная память оценивается в количестве памяти которую можно выделить, без использования подкачки.
Ключевая разница между свободной и доступной памятью заключается в том, что свободная память не использована, и не занята ничем. Тогда как в противоположность ей, доступная память используется, и включает в себя, помимо прочего, кэши и буферы, которые можно освободить без снижения производительности за счёт использования свопа.
Сравнение свободной и доступной памяти на практике
Учитывая всё вышесказанное, давайте взглянем на пару серверов Linux с 60 гигами памяти на борту, 12 ядрами и swap разделом на Raid 10 собранном из NVMe накопителей. Условно обозначим их как "Server A" и "Server B". В первую очередь воспользуемся командой free.
free -h
Вывод будет примерно похож на демонстрируемый на скриншотах ниже (там так же выполнена команда uptime, чтобы показать, что сервера живут без ребута уже достаточно давно)
У этого сервера меньше 1% свободной памяти, и 13% доступной
А вот здесь, спустя 153 дня работы 30гигов памяти по прежнему тратятся впустую
На этих скриншотах хорошо видна разница между свободной и доступной памятью. При сравнении двух систем явно видно, что даже несмотря на то, что средняя загрузка у них очень похожая (обрабатываются одни и те же рабочие нагрузки), один сервер использует практически 100% памяти (Server A), а второй тратит больше 50% памяти впустую (Server B).
Обратите внимание, что ядро Linux переместит наименее часто используемые страницы памяти в пространство подкачки, даже если имеется доступная память.
При взгляде на эти системы любой админ задастся сразу несколькими справедливыми вопросами:
Замедляет ли свопинг производительность на сервере A
Следует ли вытащить пару плашек из сервера B, чтобы задействовать в другом месте?
Например может задействовать в сервере А, которому явно не хватает?
Ожидается ли в ближайшее время рост трафика/загрузки?
В часы пиковой нагрузки, когда задействован свпо, средняя загрузка остаётся ниже 12.00?
Можно ли настроить сервер B на использование большего количество буфферов и кэша?
Поскольку часть вопросов риторическая, то разумеется каждому администратору, при возникновении подобной ситуации придётся самому отвечать на них (или запрашивать помощь друга).
Заключение
Не позволяйте себе ловить себя на том, что вы смотрите на свободную память в вашей системе Linux и делаете поспешные выводы. Не забывайте, что вам также следует учитывать доступную память, буферы/кэши и другие факторы. Короче говоря каждый случай требует отдельного рассмотрения.
Для более детального изучения механизма управления памятью можно например почитать - https://docs.kernel.org/admin-guide/mm/index.html.
Техническое обслуживание вместо ремастеринга. Как спасти старые ПК-игры на новой ОС
В мире есть более миллиона компьютерных игр. И каждый год выходят тысячи новых игр. Но иногда хочется поностальгировать по ушедшей эпохе и зарубиться в какую-нибудь игру двадцатилетней давности на ПК. Популярные старые игры обновляют, делают ремейки и ремастеры. Но что делать если игра не была такой популярной, чтобы иметь обновлённую версию на современном ПО? Неужели такие игры будут потеряны?
Старые ПК-игры могут не работать на новых компьютерах по нескольким причинам. Одна из основных причин заключается в том, что новые операционные системы и оборудование часто не поддерживают старые технологии, на которых были созданы игры. Например, для некоторых игр могут потребоваться определённые версии DirectX или других библиотек, которые больше не входят в состав новых ОС. Кроме того, игры, разработанные для более старого оборудования, могут не иметь возможности в полной мере использовать преимущества более мощного оборудования на новых ПК. Некоторые игры можно заставить работать с помощью эмуляторов или режимов совместимости, но это не всегда возможно и надёжно.
Многие старые видеоигры были потеряны со временем, потому что они не продаются и поэтому разработчики не поддерживают их. Но есть энтузиасты, которые уже много лет поддерживают работу старых игр, портируя их на Linux. Это даёт повод разработчикам задуматься о «саппорте» игр, а не о «ремастерах».
❯ Счастье — штука такая...
Исторически сложилось так, что усилия по сохранению видеоигр обычно охватывают два типа игр. Наиболее распространёнными являются очень старые игры 16-битной эпохи или ранее. Другие — это игры, которые полагаются на живой сервис, например, теперь уже отключённые серверы Enter the Matrix или любые другие игры, которые можно получить, только загрузив их через канал Nintendo Wii Shop Channel, который закрылся в 2019 году.
Но время идёт, и теперь необходимо обратить внимание на более позднюю эпоху игр, если мы все ещё хотим, чтобы эти игры, особенно инди-игры, были доступны. Мы не думаем об этом до тех пор, пока игры, большинство которых мы загружали на Windows 7, перестанут работать на компьютере с Windows 11 без какого-либо обслуживания, и выйдут уже в переиздании.
Обычно, когда разработчики видеоигр говорят о переиздании старых игр, они говорят о «ремастерах», репродукциях, которые не только обновляют графику или геймплей, но и переосмысливают всю концепцию игры. В результате чего иногда ремастеры это не просто старые игры в новой обёртке, это уже совсем другие игры.
Одна из проблем со старыми играми заключается в том, что современный ПК не имеет такого же вспомогательного оборудования (например, игровых контроллеров). К счастью, можно программно эмулировать старое оборудование. Видеодисплей также сильно отличается. Эмулировать старые видеостандарты CGA и VGA несложно, но гораздо более низкое разрешение может выглядеть довольно странно на современном мониторе (320x200 с 4 цветами выглядит не очень чётко). В более старых версиях некоторые вещи могут работать, но чтобы заставить их работать, необходимо правильно эмулировать операционную систему MSDOS. В Windows уже давно (начиная с Windows XP) есть режим совместимости и инструменты эмуляции, такие как DosBox.
Иногда в старых играх есть ошибки, которые требуют исправлений (обновления программы), чтобы они работали правильно на новых компьютерах. В других случаях, возможно, геймерам придётся потрудиться, чтобы найти обходные пути, чтобы игры работали. Если никто другой не выполнил необходимую работу раньше, это может быть очень трудно осуществить самостоятельно.
❯ Кто ищет, тот всегда найдёт… если правильно ищет
Итан Ли, также известный как flibitjibibo, занимается портированием игр для FNA, а также различных портов игр для Linux. Ли предлагает обслуживание игр и портов для Linux, Windows, Xbox (One, Series X|S), Nintendo Switch и macOS с использованием x86_64. За услуги Ли, конечно, требует оплаты, но также требует, чтобы клиентам был доступен собственный порт игры для Linux, и даже если это не так, Ли готов сделать его.
FNA — это повторная реализация библиотек Microsoft XNA Game Studio 4.0 Refresh. FNA разработан Итаном Ли, который выпустил более четырёх десятков портов игр XNA. Также можно увидеть несколько примеров игр Steam, использующих FNA. Среди инди-игр, портированных Ли, — Super Hexagon, Thirty Years of Loving, Proteus, Rogue Legacy, Dust: An Elysian Tail, TowerFall Ascension, VVVVVV, Transistor, Wizorb, Mercenary Kings, Hacknet, Shenzhen I/O и Bastion.
Thirty Flights of Loving
Цель — сохранить библиотеку игр XNA, переопределив саму XNA, уделив особое внимание точности. Итан и его соратники хотят воспроизвести XNA в том виде, в котором она была создана Microsoft, обеспечивая при этом удобство работы на всех целевых платформах. Они не используют в своём коде специфичные для игры хаки.
Поскольку FNA ориентирована исключительно на полностью открытые платформы, основное внимание уделяется ПК. С этой целью FNA поддерживает Windows, macOS и GNU/Linux с помощью одного файла сборки. Не используются условные выражения препроцессора для платформ; модель платформы требует, чтобы была создана библиотека, которая работает на любой платформе, независимо от того, где она была создана. Когда создаётся игра FNA с помощью Visual Studio, можно ожидать, что она будет работать в Windows, Mac и Linux с одним набором выходных сборок. Кроме того, FNA поддерживает iOS, tvOS, Xbox (One, Series S|X), Nintendo Switch и Google Stadia (закрыт в 2023 году).
Ли и его команда пришли к этому проекту работая с Humble Bundle, компанией, основанной в 2010 году, которая продаёт инди-игры. Humble Bundle попросили разработчиков игр для ПК также обеспечить возможность запуска своих игр на macOS и Linux. У Ли был некоторый опыт работы с последним, когда он портировал небольшую игру под названием Waveform на Linux.
Как и во времена Humble Bundle, есть только одно явное требование к игре, чтобы претендовать на поддержку и обслуживание: у неё должна быть собственная версия Linux, доступная клиентам. Если у разработчиков его нет, Ли предлагает сделать его в рамках своего сервиса. Это среда, в которой ему удобнее всего разрабатывать, но поскольку Linux имеет открытый исходный код, поддерживать версии игр для Linux легче. Вместо того, чтобы ждать и надеяться на какое-либо решение, которое придумает Microsoft, чтобы заставить старые игры работать на новых версиях Windows, сообщество открытого исходного кода может создать своё собственное. Это также гораздо более привлекательное предложение теперь, когда у Steam есть платформа Linux SteamOS, у которой есть специальное устройство Steam Deck.
Разработчики строго используют бесплатное программное обеспечение с открытым исходным кодом в FNA. Авторы проекта FNA не хотят быть инструментом к запатентованным продуктам; они позволяют всем пользователям иметь возможность свободно делать всё, что пожелают с их программным обеспечением, которое они используют для реализации того, что, по их мнению, является важным для сохранения XNA-игр. Хотя, безусловно, можно использовать FNA для работы с закрытыми платформами и технологиями, разрабы не хотят налагать эти ограничения на процесс разработки.
❯ Игра стоит свеч
Зачастую людям кажется, что единственный способ перевести игру в новое поколение — это сделать большой ремастер. Это круто, но разве не было бы круто, если бы культовая Quake II продолжал работать с 1997 года по настоящее время без всех этих перезапусков?
За последние 15 лет каталог для ПК очень разросся, и даже небольшие независимые студии теперь имеют обширный каталог игр, которые игроки технически все еще могут покупать и играть в них сегодня. Однако за это приходится платить: чем дольше существует студия, тем больше становится её каталог, и, как следствие, увеличивается и нагрузка на обслуживание.
Что касается игры для Xbox 360, то она доступна только до тех пор, пока у вас есть работающая консоль Xbox 360, если только вы не создадите ещё одну её версию для другой платформы. Что касается ПК, люди предполагают, что, если игра выйдет на Windows, она сможет жить вечно в будущих версиях Windows. На ПК собрано огромное количество вещей: есть процессор x86, современная эра графических процессоров, а также операционная система и различные драйверы. И изменение любого из этих слоев может привести к тому, что игра будет работать плохо или вообще не работать.
В вирусном видео подробно рассказывается, как многие компьютерные игры от Rockstar Games работают плохо или полностью ломаются, потому что они не были должным образом портированы на новые операционные системы. Иногда официальные версии этих игр в Steam на самом деле являются взломанными версиями, потому что пиратское сообщество справляется с их поддержкой лучше, чем один из крупнейших издателей видеоигр в мире.
Дико думать, что большие объёмы произведений цифрового искусства, созданные на протяжении всей истории, будут потеряны для времени без такой сложной работы по сохранению, и существует слишком мало знающих людей и организаций, у которых есть время и ресурсы, чтобы заниматься этим. Microsoft, надо отдать должное, попыталась поддержать наследие игр для Xbox, обеспечив обратную совместимость на Xbox One и Xbox Series X|S, но у них не поддерживаются все игры, и похоже, что никогда не будет.
Учитывая, что многие старые игры не работают, а у большинства разработчиков нет ни времени, ни ресурсов для поддержки своих старых игр, это кажется хорошим планом, нанять кого-нибудь со стороны, чтобы обновить некоторые из ваших старых игр для тех немногих людей, которые все ещё хотят в них играть, и для будущих поколений. Подумайте об игре из вашей юности, в которую вы не можете играть, а затем представьте сегодняшнего ребенка, который никогда в неё не играл, а затем представьте игру, выпущенную за последние несколько лет, которую может постичь та же участь, если кто-то не будет работать над её саппортом.
Конкурс для мемоделов: с вас мем — с нас приз
Конкурс мемов объявляется открытым!
Выкручивайте остроумие на максимум и придумайте надпись для стикера из шаблонов ниже. Лучшие идеи войдут в стикерпак, а их авторы получат полугодовую подписку на сервис «Пакет».
Кто сделал и отправил мемас на конкурс — молодец! Результаты конкурса мы объявим уже 3 мая, поделимся лучшими шутками по мнению жюри и ссылкой на стикерпак в телеграме. Полные правила конкурса.
А пока предлагаем посмотреть видео, из которых мы сделали шаблоны для мемов. В главной роли Валентин Выгодный и «Пакет» от Х5 — сервис для выгодных покупок в «Пятёрочке» и «Перекрёстке».
Реклама ООО «Корпоративный центр ИКС 5», ИНН: 7728632689