1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/juicedata-JuiceFS

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Логотип JuiceFS

Последняя стабильная версия Статус GitHub Workflow Статус GitHub Workflow Отчет Go Английская документация Присоединиться к Slack

JuiceFS — это высокопроизводительная POSIX-совместимая файловая система, выпущенная под лицензией Apache 2.0, специально предназначенная для облачной среды. Данные, хранящиеся с помощью JuiceFS, будут сохранены в объектном хранилище (например, Amazon S3), а соответствующие метаданные могут быть сохранены в различных совместимых базах данных, таких как Redis, MySQL и TiKV в зависимости от сценария и требований.С помощью JuiceFS можно прямым образом подключить массовое облачное хранилище к большим данным, машинному обучению, искусственному интеллекту и различным платформам приложений в рабочих средах. Без изменения кода массовое облачное хранилище может использоваться так же эффективно, как локальное хранилище.

📖 Документация: Краткое руководство## Основные возможности

  1. Полностью совместим с POSIX: Используйте как локальную файловую систему, плавно интегрируясь с существующими приложениями без нарушения бизнес-процессов.
  2. Полностью совместим с Hadoop: Java SDK Hadoop обеспечивает совместимость с Hadoop 2.x и Hadoop 3.x, а также различными компонентами экосистемы Hadoop.
  3. Совместимость с S3: Шлюз S3 JuiceFS предоставляет интерфейс, совместимый с Amazon S3.
  4. Облачная интеграция: Предоставлен драйвер Kubernetes CSI для удобного использования JuiceFS в Kubernetes.
  5. Делящееся использование: JuiceFS — это общая файловая система хранения, доступная для чтения и записи тысячами клиентов.
  6. Наличие сильной консистентности данных: Подтверждённые изменения сразу становятся видимыми на всех серверах, смонтированных с одной и той же файловой системой.
  7. Отличная производительность: Задержка может составлять всего несколько миллисекунд, а пропускная способность может быть расширена практически безгранично (в зависимости от размера объектного хранилища). Результаты тестирования
  8. Шифрование данных: Поддерживает шифрование данных во время передачи и на месте (пожалуйста, обратитесь к руководству для получения более подробной информации).

9.Глобальные блокировки файлов: JuiceFS поддерживает как блокировки BSD (flock), так и блокировки записи POSIX (fcntl).

Сжатие данных: JuiceFS поддерживает LZ4 или Zstandard для сжатия всех ваших данных.Архитектура | Начало работы | Продвинутые темы | Совместимость с POSIX | Бенчмарки производительности | Поддерживаемое хранилище объектов | Кто использует | План развития | Отчет о проблемах | Участие в проекте | Общество | Отслеживание использования | Лицензия | Авторы | Часто задаваемые вопросы


Архитектура

JuiceFS состоит из трёх частей:

  1. Клиент JuiceFS: Координирует работу с хранилищами объектов и движками хранения метаданных, а также реализует интерфейсы файловой системы, такие как POSIX, Hadoop, Kubernetes и шлюз S3.
  2. Хранилище данных: Хранение данных с поддержкой различных типов носителей, таких как локальные жёсткие диски, публичные или приватные облачные хранилища объектов и HDFS.
  3. Движок метаданных: Хранение соответствующих метаданных, содержащих информацию о имени файла, размере файла, группе прав доступа, времени создания и изменения, структуре каталогов и т.д., с поддержкой различных движков метаданных, таких как Redis, MySQL, SQLite и TiKV.

Архитектура JuiceFSJuiceFS может хранить метаданные файловой системы на различных движках метаданных, таких как Redis — быстрый, открытый, встроенный ключ-значение хранилище данных, особенно подходящее для хранения метаданных; при этом все данные будут храниться в хранилище объектов через клиент JuiceFS. ПодробнееСтруктура данных

Каждый файл, хранящийся в JuiceFS, разбивается на "chunks" фиксированного размера с максимальной величиной по умолчанию 64 МБ. Каждый chunk состоит из одного или нескольких "slices", и длина slice зависит от того, как был записан файл. Каждый slice состоит из блоков фиксированного размера, которые по умолчанию равны 4 МБ. Эти блоки будут храниться в хранилище объектов в конце концов; одновременно метаданные файла и его chunks, slices и блоков будут храниться в движках метаданных через JuiceFS. Подробнее

Как JuiceFS хранит ваши файлы При использовании JuiceFS файлы в конечном итоге будут разделены на chunks, slices и блоки и сохранены в Объектном хранилище. Поэтому исходные файлы, хранящиеся в JuiceFS, нельзя будет найти в браузере файлов платформы Объектного хранилища; вместо этого в корзине будут только каталог с чанками и множество цифрово пронумерованных каталогов и файлов. Не пугайтесь! Это просто секрет высокопроизводительной работы JuiceFS!

Начало работы

Перед тем как начать, убедитесь, что у вас есть:1. Одно поддерживающее метаданные движение, см. Как настроить движение метаданных 2. Одно поддерживающее объектное хранилище для хранения блоков данных, см. Поддерживаемое объектное хранилище 3. Клиент JuiceFS скачан и установленДля быстрого старта используйте краткое руководство!

Справочник команд

См. все опции командной строки в справочнике команд.

Контейнеры

JuiceFS можно использовать как постоянный том для Docker и Podman, подробнее см. здесь.

Kubernetes

Использование JuiceFS на Kubernetes также очень легко. Подробнее см. здесь.

Java SDK для Hadoop

Если вы хотите использовать JuiceFS в Hadoop, проверьте Java SDK для Hadoop.

Продвинутые темы

Для получения более подробной информации обратитесь к центру документации JuiceFS.## Совместимость с POSIX

JuiceFS прошёл все тесты совместимости (всего 8813) в последней версии pjdfstest.

Все тесты пройдены успешно.
```Отчет о тестах
--------------
/root/soft/pjdfstest/tests/chown/00.t          (Wstat: 0 Tests: 1323 Failed: 0)
  TODO passed:   693, 697, 708-709, 714-715, 729, 733
Файлов: 235, Тестов: 8813, Времени выполнения: 233 секунды (2.77 usr 0.38 sys + 2.57 cusr 3.93 csys = 9.65 CPU)
Результат: УСПЕШНЫЙ
```Кроме того, что проверено тестами `pjdfstest`, JuiceFS также предоставляет следующие возможности:

- **Соответствие "write-close"**. После записи файла и его закрытия гарантируется просмотр записанных данных при последующих открытиях и чтениях с любого клиента. При этом внутри одной точки монтирования все записи становятся доступными сразу после записи.
- Переименование и все остальные операции метаданных являются атомарными, что обеспечивается транзакциями поддерживаемого движка метаданных.
- Открытые файлы остаются доступными после удаления с той же точки монтирования.
- Mmap (тестировано с FSx).
- Fallocate с поддержкой вырезания областей.
- Расширенные атрибуты (xattr).
- BSD блокировки (flock).
- Блокировки POSIX (fcntl).

## Оценка производительности

### Основной бенчмарк

JuiceFS предоставляет подкоманду, которая может запустить несколько базовых бенчмарков для помощи в понимании работы системы в вашем окружении:

![Бенчмарк JuiceFS](docs/en/images/juicefs-bench.png)

### Пропускная способность

Проведён бенчмарк последовательного чтения и записи для JuiceFS, [EFS](https://aws.amazon.com/efs) и [S3FS](https://github.com/s3fs-fuse/s3fs-fuse) с помощью [fio](https://github.com/axboe/fio).

![Последовательный бенчмарк чтения и записи](docs/en/images/sequential-read-write-benchmark.svg)

Вышеуказанный график показывает, что JuiceFS обеспечивает в десять раз большую пропускную способность по сравнению с другими двумя системами (подробнее см. [инфо](https://juicefs.com/docs/community/fio)).### Производительность метаданных

Проведён простой бенчмарк метаданных mdtest для JuiceFS, [EFS](https://aws.amazon.com/efs) и [S3FS](https://github.com/s3fs-fuse/s3fs-fuse) с помощью [mdtest](https://github.com/hpc/ior).

![Бенчмарк метаданных](docs/en/images/metadata-benchmark.svg)

График показывает, что JuiceFS обеспечивает значительно большую производительность метаданных по сравнению с другими двумя системами (подробнее см. [инфо](https://juicefs.com/docs/community/mdtest)).

### Анализ производительности

Для анализа производительности обратитесь к разделу [Мониторинг производительности в реальном времени](https://juicefs.com/docs/community/fault_diagnosis_and_analysis#performance-monitor), если возникли проблемы с производительностью.

## Поддерживаемые службы объектного хранилища

- Amazon S3 _(и другие совместимые с S3 службы объектного хранилища)_
- Google Cloud Storage
- Azure Blob Storage
- Alibaba Cloud Object Storage Service (OSS)
- Tencent Cloud Object Storage (COS)
- Qiniu Cloud Object Storage (Kodo)
- QingStor Object Storage
- Ceph RGW
- MinIO
- Локальный диск
- Redis
- ...

JuiceFS поддерживает множество служб объектного хранилища. [Узнайте больше](https://juicefs.com/docs/community/how_to_setup_object_storage#supported-object-storage).

## Кто используетJuiceFS готов к использованию в производстве и используется тысячами машин. Список пользователей собран и документирован [здесь](https://juicefs.com/docs/community/adopters). К тому же, у нас есть несколько проектов, которые интегрированы с другими открытыми проектами, что мы документируем [здесь](https://juicefs.com/docs/community/integrations). Если вы также используете JuiceFS, пожалуйста, сообщите нам об этом, и вы приветствуетесь поделиться своим опытом со всеми.Формат хранения стабилен и будет поддерживаться во всех будущих выпусках.

## План действий

- Ограничения пользователя и группы
- Аппаратные моментальные снимки
- Однократная запись многократного чтения (WORM)

## Отчет о проблемах

Мы используем [GitHub Issues](https://github.com/juicedata/juicefs/issues) для отслеживания сообщества о проблемах. Вы можете также [обратиться](#сообщество) за помощью по любым вопросам.

## Вклад

Спасибо за ваш вклад! Для получения более подробной информации обратитесь к [руководству по вкладу в проект JuiceFS](https://juicefs.com/docs/community/development/contributing_guide).

## Сообщество

Добро пожаловать в раздел [Обсуждение](https://github.com/juicedata/juicefs/discussions) и канал Slack [Slack channel](https://go.juicefs.com/slack), чтобы связаться с членами команды JuiceFS и другими пользователями.

## Отслеживание использования

JuiceFS собирает анонимные данные использования по умолчанию, чтобы лучше понять, как сообщество использует JuiceFS. Отчитываются только ключевые метрики (например, номер версии), а данные пользователей и любая другая конфиденциальная информация не включаются. Соответствующий код можно просмотреть [здесь](pkg/usage/usage.go).

Вы также можете легко отключить отчетность с помощью командной строки `--no-usage-report`:

```bash
juicefs mount --no-usage-report

Лицензия

JuiceFS распространяется под лицензией Apache License 2.0, см. LICENSE.Дизайн JuiceFS был вдохновлен Google File System, HDFS и MooseFS. Благодарим вас за вашу отличную работу!

Часто задаваемые вопросы

Почему JuiceFS не поддерживает объектное хранилище XXX?

JuiceFS поддерживает множество сервисов объектного хранилища. Вначале проверьте этот список. Если объектное хранилище, которое вы хотите использовать, совместимо с S3, вы можете рассматривать его как S3. В противном случае попробуйте сообщить о проблеме.

Можно ли использовать Redis Cluster в качестве движка метаданных?

Да. Начиная с версии v1.0.0 Beta3 JuiceFS поддерживает использование Redis Cluster в качестве движка метаданных, но следует отметить, что Redis Cluster требует, чтобы ключи всех операций в транзакции находились в одном хеш-слоте, поэтому файловая система JuiceFS может использовать только один хеш-слот.

Подробнее см. раздел "Лучшие практики Redis".

Какова разница между JuiceFS и XXX?

Подробнее см. раздел "Сравнение с другими".

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

Подписчики со временемГрафик истории подписок

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

JuiceFS — это открытая POSIX-совместимая файловая система, созданная на основе Redis и объектного хранилища (например, Amazon S3), оптимизированная для облачных и локальных сред. Развернуть Свернуть
Go и 5 других языков
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/juicedata-JuiceFS.git
git@api.gitlife.ru:oschina-mirror/juicedata-JuiceFS.git
oschina-mirror
juicedata-JuiceFS
juicedata-JuiceFS
main