Я видел ваш файл зоны: на данный момент он представляет собой список из более чем 350 000 доменов, где локальный сервер BIND определен как хозяин. Домены имеют следующий формат:
zone "xxxx.com" { type master; notify no; file "null.zone.file"; };
В соответствии с требованиями к памяти, я бы сказал в качестве приблизительной цифры, вам может потребоваться около 40–80 МБ свободной оперативной памяти для этого, поскольку таблицы доменов загружаются в память. (хотя мне было бы удобнее, по крайней мере, 200 МБ)
Если сервер не сильно ограничен в ОЗУ, это кажется маловероятным, но это может случиться.
Я также заметил, что в именах нескольких доменов есть символы подчеркивания ("_"). Наличие подчеркивания в DNS RR нарушает пару RFC (RFC 952 и RFC 1123), и вам необходимо добавить в раздел параметров BIND директиву:
check-names master ignore;
Что касается формата и метода, используемых для внесения доменов в черный список. Начиная с версии 9.8, BIND поддерживает так называемые зоны политики ответа (RPZ), которые были созданы специально для внесения доменов в черный список.
В настоящее время этому формату следуют несколько (коммерческих) поставщиков черных списков. (Сам использую РПЗ и на работе, и дома).
Использование RPZ должно иметь больше смысла, а также означает меньшую нагрузку, и поэтому, если вы оплачиваете услугу, я бы посоветовал вам связаться с вашим поставщиком, чтобы узнать, как ее использовать. Формат RPZ также в некоторой степени поддерживает подстановочные знаки, что означает гораздо меньший размер файла черного списка.
Альтернативой является обработка файла сценарием для преобразования его в формат RPZ.
Я оставлю здесь соответствующие ссылки о RPZ и официальных поставщиках RPZ:
и руководство по настройке RPZ:
http://www.zytrax.com/ books / dns / ch9 / rpz.html
Как вы могли заметить, с текущей конфигурацией у вас также будет много открытых файлов; поэтому я снова рекомендую использовать RPZ.
Для работы с большим количеством открытых файлов на больших серверах электронной почты, DNS или HTTP часто приходится повышать ограничения.
Ситуация не так плоха, как раньше со старыми ядрами, но тем не менее я рекомендую повысить лимиты.
Отредактируйте /etc/sysctl.conf
и измените / добавьте директиву fs.file-max
для глобального лимита открытых файлов:
fs.file-max=500000
Для применения нового лимита файлов без перезагрузки вам необходимо запустить:
sudo sysctl -p
А для ограничения файлов на процесс, отредактируйте, / etc / security / limits.conf
:
* - nofile 400000
Чтобы применить ограничения файла для каждого процесса, либо выйти из системы и войти в систему, либо запустить:
sudo ulimit -n 400000
После повышения этих двух ограничений вам необходимо перезапустить BIND:
sudo service bind9 restart
Чтобы преобразовать ваш файл в формат RPZ, вы запускаете:
cat bind | tr -d \" | awk ' { print $2" CNAME ." } ' > /etc/bind/rpz.db
Сценарий преобразует записи в следующий формат:
zeus.developershed.com CNAME .
zeusclicks.com CNAME .
zintext.com CNAME .
Добавьте в раздел параметров named:
response-policy { zone "rpz"; };
Создайте объявление зоны RPZ:
zone "rpz" {
type master;
file "/etc/bind/rpz.db";
};
Добавить в начало из /etc/bind/rpz.db
файл:
$TTL 604800
@ IN SOA localhost. root.localhost. (
2 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
@ IN NS your_dns_fqdn.
Удалите из конфигурации этот ваш файл DNS и перезапустите сервер BIND. Очевидно, файл RPZ можно оптимизировать с помощью подстановочных знаков и сделать его намного короче, однако даже без этой оптимизации теперь вам не понадобится так много открытых файлов.
Что касается просмотра журналов BIND / DNS, они находятся вместе с системными журналами в / var / log / syslog
с тегом с именем
. Вы можете использовать команду:
sudo grep named /var/log/syslog
Вы уже на правильном пути. GPU Passthrough не идеален, особенно если это карта NVidia (, о которой вы не упоминаете NVidia или AMD ). Завершите настройку в окне Qemu.Убедитесь, что компьютер с Windows подключен к Интернету, и позвольте Центру обновления Windows установить для вас графические драйверы. Когда вы вернетесь, вас должен приветствовать второй монитор, если нет, перезагрузите компьютер. Затем я обычно удаляю консоль spice/vnc и подключаю только монитор GPU. Чтобы заставить GPU Passthrough работать, нужно пробовать и ошибаться.
Что еще можно попробовать:
Примечание. :Код 43 — это известная ошибка NVidia, связанная с тем, что драйверы NVidia проверяют, работают ли они на виртуальной машине. NVidia продает карты специально для работы в виртуальной среде и пытается заблокировать установку драйверов для карт потребительского уровня в виртуальной машине. Вы должны убедиться, что используете следующее в вашем domain.xml
<kvm>
<hidden state='on'/>
</kvm>
Примеры см. вhttps://passthroughpo.st/apply-error-43-workaround/и других ресурсах.
Вот скриншот моего конфига:
Вот "релевантная" часть моего domain.xml, я могу поделиться всем, если хотите, но там много ненужного.
<os>
<type arch='x86_64' machine='pc-i440fx-2.10'>hvm</type>
<loader readonly='yes' type='pflash'>/usr/share/edk2/ovmf/OVMF_CODE.fd</loader>
<nvram>/var/lib/libvirt/qemu/nvram/Windows10_VARS.fd</nvram>
<boot dev='hd'/>
</os>
<features>
<acpi/>
<apic/>
<kvm>
<hidden state='on'/>
</kvm>
<vmport state='off'/>
</features>
<clock offset='localtime'>
<timer name='rtc' tickpolicy='catchup'/>
<timer name='pit' tickpolicy='delay'/>
<timer name='hpet' present='no'/>
</clock>
Я сделал это с этим:
sudo qemu-system-x86_64 --enable-kvm \
-name TESTVM,process=TESTVM \
-drive id=disk0,if=virtio,cache=none,format=raw,file=/dev/nvme-tank/ntfs-zvol,index=2 \
-smp 4 \
-cpu core2duo,kvm=off \
-m 4096 \
-device vfio-pci,host=43:00.0,multifunction=on \
-device vfio-pci,host=43:00.1 \
-drive if=pflash,format=raw,readonly,file=/usr/share/OVMF/OVMF_CODE.fd \
-drive if=pflash,format=raw,file=/usr/share/OVMF/OVMF_VARS.fd
, а затем перейдите к записи GTX 1070 в диспетчере устройств и обновите драйверы. В прошлый раз (с помощью virt -install )я установил обновления с сайта NVIDIA. Теперь, чтобы заставить это работать с установкой virt -, чтобы у меня был редактируемый домен XML.
Редактировать :До сих пор при использовании virt -install я теперь (снова )получаю экран Tiano, но на этот раз установки драйверов, как описано выше, было недостаточно, и это не помогло импортируйте вышеуказанную установку, используя virt -install (на примечании, мне потребовалось некоторое время, чтобы понять, что все, что мне нужно было сделать, чтобы заставить virt -install работать с моей существующей установкой, это включить загрузочный iso, позволяя загрузиться с установки без ошибки ).
Править :Итак, я думаю, что теперь это работает.
Затем выполните virt -install (, но снова получите ошибку 43):
вирт -установить \ --имя myWINVM1 \ --загрузка uefi\ --баран 4096 \ --функции kvm _hidden=on \ --hostdev 43 :00.0,address.type=pci,address.multifunction=on \ --hostdev 43 :00.1,address.type=pci \ --disk path=/dev/nvme -tank/ntfs -zvol -part2 \ --процессор core2duo \ --vcpus 4 \ --ОС -тип окна \ --ОС -вариант win10 \ --сетевой мост=virbr0 \ --консоль pty, цель _тип = серийный номер \ --disk /media/big -tank -8TB/OSISOS/Windows/WindowsOct2018.iso,device=cdrom \ --disk /media/big -tank -8TB/OSISOS/Windows/virtio -win -0.1.160.iso,device=cdrom
Графическое устройство spice удалено из XML-файла myWINVM1. Все еще не мог пройти мимо TianoCore.
добавил поддельную строку идентификатора поставщика в мой XML
мой окончательный xml:
<domain type='kvm' id='24'>
<name>myWINVM1</name>
<uuid>43e052b3-b3da-4025-92d8-ec7c8ff96ae9</uuid>
<memory unit='KiB'>4194304</memory>
<currentMemory unit='KiB'>4194304</currentMemory>
<vcpu placement='static'>4</vcpu>
<resource>
<partition>/machine</partition>
</resource>
<os>
<type arch='x86_64' machine='pc-i440fx-bionic'>hvm</type>
<loader readonly='yes' type='pflash'>/usr/share/OVMF/OVMF_CODE.fd</loader>
<nvram>/var/lib/libvirt/qemu/nvram/myWINVM1_VARS.fd</nvram>
<boot dev='hd'/>
</os>
<features>
<acpi/>
<apic/>
<hyperv>
<relaxed state='on'/>
<vapic state='on'/>
<spinlocks state='on' retries='8191'/>
<vendor_id state='on' value='1234567890ab'/>
</hyperv>
<kvm>
<hidden state='on'/>
</kvm>
<vmport state='off'/>
</features>
<cpu mode='custom' match='exact' check='full'>
<model fallback='forbid'>core2duo</model>
<feature policy='disable' name='ss'/>
<feature policy='disable' name='monitor'/>
<feature policy='require' name='cx16'/>
<feature policy='require' name='x2apic'/>
<feature policy='require' name='hypervisor'/>
<feature policy='require' name='lahf_lm'/>
</cpu>
<clock offset='localtime'>
<timer name='rtc' tickpolicy='catchup'/>
<timer name='pit' tickpolicy='delay'/>
<timer name='hpet' present='no'/>
<timer name='hypervclock' present='yes'/>
</clock>
<on_poweroff>destroy</on_poweroff>
<on_reboot>restart</on_reboot>
<on_crash>destroy</on_crash>
<pm>
<suspend-to-mem enabled='no'/>
<suspend-to-disk enabled='no'/>
</pm>
<devices>
<emulator>/usr/bin/kvm-spice</emulator>
<disk type='file' device='disk'>
<driver name='qemu' type='raw'/>
<source file='/dev/nvme-tank/ntfs-zvol-part2'/>
<backingStore/>
<target dev='hda' bus='ide'/>
<alias name='ide0-0-0'/>
<address type='drive' controller='0' bus='0' target='0' unit='0'/>
</disk>
<disk type='file' device='cdrom'>
<driver name='qemu' type='raw'/>
<source file='/media/big-tank-8TB/OSISOS/Windows/WindowsOct2018.iso'/>
<backingStore/>
<target dev='hdb' bus='ide'/>
<readonly/>
<alias name='ide0-0-1'/>
<address type='drive' controller='0' bus='0' target='0' unit='1'/>
</disk>
<disk type='file' device='cdrom'>
<driver name='qemu' type='raw'/>
<source file='/media/big-tank-8TB/OSISOS/Windows/virtio-win-0.1.160.iso'/>
<backingStore/>
<target dev='hdc' bus='ide'/>
<readonly/>
<alias name='ide0-1-0'/>
<address type='drive' controller='0' bus='1' target='0' unit='0'/>
</disk>
<controller type='usb' index='0' model='ich9-ehci1'>
<alias name='usb'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x7'/>
</controller>
<controller type='usb' index='0' model='ich9-uhci1'>
<alias name='usb'/>
<master startport='0'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0' multifunction='on'/>
</controller>
<controller type='usb' index='0' model='ich9-uhci2'>
<alias name='usb'/>
<master startport='2'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x1'/>
</controller>
<controller type='usb' index='0' model='ich9-uhci3'>
<alias name='usb'/>
<master startport='4'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x2'/>
</controller>
<controller type='pci' index='0' model='pci-root'>
<alias name='pci.0'/>
</controller>
<controller type='ide' index='0'>
<alias name='ide'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/>
</controller>
<controller type='virtio-serial' index='0'>
<alias name='virtio-serial0'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
</controller>
<interface type='bridge'>
<mac address='52:54:00:36:1d:c4'/>
<source bridge='virbr0'/>
<target dev='vnet0'/>
<model type='rtl8139'/>
<alias name='net0'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
</interface>
<serial type='pty'>
<source path='/dev/pts/4'/>
<target type='isa-serial' port='0'>
<model name='isa-serial'/>
</target>
<alias name='serial0'/>
</serial>
<console type='pty' tty='/dev/pts/4'>
<source path='/dev/pts/4'/>
<target type='serial' port='0'/>
<alias name='serial0'/>
</console>
<channel type='spicevmc'>
<target type='virtio' name='com.redhat.spice.0' state='disconnected'/>
<alias name='channel0'/>
<address type='virtio-serial' controller='0' bus='0' port='1'/>
</channel>
<input type='tablet' bus='usb'>
<alias name='input0'/>
<address type='usb' bus='0' port='1'/>
</input>
<input type='mouse' bus='ps2'>
<alias name='input1'/>
</input>
<input type='keyboard' bus='ps2'>
<alias name='input2'/>
</input>
<sound model='ich6'>
<alias name='sound0'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
</sound>
<video>
<model type='qxl' ram='65536' vram='65536' vgamem='16384' heads='1' primary='yes'/>
<alias name='video0'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
</video>
<hostdev mode='subsystem' type='usb' managed='no'>
<source>
<vendor id='0x046d'/>
<product id='0xc33b'/>
<address bus='5' device='3'/>
</source>
<alias name='hostdev0'/>
<address type='usb' bus='0' port='4'/>
</hostdev>
<hostdev mode='subsystem' type='usb' managed='no'>
<source>
<vendor id='0x046d'/>
<product id='0xc52b'/>
<address bus='5' device='4'/>
</source>
<alias name='hostdev1'/>
<address type='usb' bus='0' port='5'/>
</hostdev>
<hostdev mode='subsystem' type='pci' managed='yes'>
<driver name='vfio'/>
<source>
<address domain='0x0000' bus='0x43' slot='0x00' function='0x0'/>
</source>
<alias name='hostdev2'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/>
</hostdev>
<hostdev mode='subsystem' type='pci' managed='yes'>
<driver name='vfio'/>
<source>
<address domain='0x0000' bus='0x43' slot='0x00' function='0x1'/>
</source>
<alias name='hostdev3'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x0'/>
</hostdev>
<redirdev bus='usb' type='spicevmc'>
<alias name='redir0'/>
<address type='usb' bus='0' port='2'/>
</redirdev>
<redirdev bus='usb' type='spicevmc'>
<alias name='redir1'/>
<address type='usb' bus='0' port='3'/>
</redirdev>
<memballoon model='virtio'>
<alias name='balloon0'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x09' function='0x0'/>
</memballoon>
</devices>
<seclabel type='dynamic' model='apparmor' relabel='yes'>
<label>libvirt-43e052b3-b3da-4025-92d8-ec7c8ff96ae9</label>
<imagelabel>libvirt-43e052b3-b3da-4025-92d8-ec7c8ff96ae9</imagelabel>
</seclabel>
<seclabel type='dynamic' model='dac' relabel='yes'>
<label>+64055:+120</label>
<imagelabel>+64055:+120</imagelabel>
</seclabel>
</domain>
Вот что у меня сработало после долгой борьбы:
прежде всего отредактируйте файл конфигурации виртуальной машины qemu следующим образом:
cd /etc/libvirt/qemu
sudo virsh define win10_GPU.xml
sudo virsh edit win10_GPU
где «win10 _GPU» — это, конечно, имя вашей виртуальной машины. и добавьте
<qemu:commandline>
<qemu:arg value='-cpu'/>
<qemu:arg value='host,hv_time,kvm=off,hv_vendor_id=null,-hypervisor'/>
</qemu:commandline>
после </devices>
почти в конце файла
затем нажмите ctrl+O (save ), ctrl+X (exit )и введите sudo virsh define win10_GPU.xml
снова;
удалите все остальные интерфейсы дисплея с вашей виртуальной машины, прежде чем даже начать установку Windows (например, spice, video cirrus и т. д. );
Это мой личный опыт. Любая другая вещь, которую я пробовал, приводила к этому коду ошибки 43.