Технические вопросы
В. Когда я пытаюсь прочесть 12Gb файл из C в мой Linux бокс, то это не удается, поскольку размер файла превышает 2Gb. Как я могу прочесть этот файл?
О1. Быстрая тестовая программа показывает, что простое выполнение read(2) на 6 Gb файле работает достаточно хорошо. Но если вам необходимо найти его, используйте __llseek(2), поскольку lseek(2) может адресовать только 2 Gb. Для того чтобы использовать stdio функции, вам необходимо определить некоторые флаги компилятора, как обсуждается ниже.
О2.
Это ограничение вызовов libc. Вам необходимо использовать версии/флаги для больших форматов,
при открытии, закрытии, чтении etc, когда вы компилируете программу.
Это обсуждается на веб-странице
Large File Programming.
Пример:
gcc -o bonnie_large -DHAVE_LARGEFILE_SUPPORT -D_FILE_OFFSET_BITS=64
-D_LARGEFILE_SOURCE bonnie_large.c
Если во время инсталляции, основанной на kickstart, я монтирую NFS область с использованием %post, мои передачи очень медленные. Какие опции монтирования следует задать, чтобы увеличить скорости?
О1. Во время инсталляции вы можете перейти на текстовый экран с приглашением bash, нажав ctrl-alt-f2. Наберите "mount", чтобы увидеть, с какими опциями /mnt/source было выполнено монтирование.
О2.
Вот что я передал опции -o в команде mount:
ro,nolock,vers=3,rsize=32768,wsize=32768,hard,udp
В. Можно ли настроить собственный yum repo? Я хотел бы создать на моем NFS сервере комбинацию стандартного Scientific Linux repo и локальных пакетов rpm.
О. Да, это можно сделать, причем довольно просто.
- На сервере NFS создайте для этих целей специальный каталог.
В нашем примере /export/localrepo
- На сервере NFS убедитесь, что createrepo установлен
yum install createrepo - На сервере NFS скопируйте все ваши пакеты rpm в этот каталог. Это может быть фактически каталог внутри этого каталога. Можно также сделать линки на пакеты rpm, но так, чтобы эти линки были видны клиентам при монтировании nfs. Возможно, будет проще создать правильное содержимое и затем поместить его в каталог.
- На сервере NFS создайте заголовки yum для этого каталога
(Для клиентов S.L. 3.0.x) yum-arch -l /export/localrepo
(Для клиентов S.L. 4.x) createrepo /export/localrepo На этом установки на сервере заканчиваются
- На клиенте подмонтируйте каталог nfs. В нашем примере монтируем в
каталог
/mnt/repo
mount myserver:/export/localrepo /mnt/repo - На клиенте поместите local repo в файл конфигурации yum. Для этого
- в S.L. 3.0.x поместите в конец файла /etc/yum.conf следующую запись
[localrepo]
name=local repo
baseurl=file:///mnt/repo/ - в S.L. 4.x создайте файл /etc/yum.repos.d/local.repo, содержащий следующую запись
[localrepo]
name=local repo
baseurl=file:///mnt/repo/
enabled=1
- в S.L. 3.0.x поместите в конец файла /etc/yum.conf следующую запись
- На клиенте просто используйте yum, как вы это делаете всегда
yum update, yum list, yum install ...