Angielskifrancuskihiszpański

Ad


Ulubiona usługa OnWorks

bbvirt - Online w chmurze

Uruchom bbvirt w darmowym dostawcy hostingu OnWorks przez Ubuntu Online, Fedora Online, emulator online Windows lub emulator online MAC OS

Jest to polecenie bbvirt, które można uruchomić u dostawcy bezpłatnego hostingu OnWorks przy użyciu jednej z naszych wielu bezpłatnych stacji roboczych online, takich jak Ubuntu Online, Fedora Online, emulator online systemu Windows lub emulator online MAC OS

PROGRAM:

IMIĘ


bbvirt - hotplug urządzeń BitBabbler do domen zarządzanych przez libvirt

STRESZCZENIE


bbvirt akcja [Opcje]

bbvirt dołączać|odłącz urządzenie [Opcje]

bbvirt dołączyć-wszystko|odłącz-wszystko [domena] [Opcje]

OPIS


Połączenia bbvirt Program jest próbą złagodzenia bólu związanego z tym, co jest obecnie
wymagane do dystrybucji wielu urządzeń USB między maszynami wirtualnymi hosta i gościa.
Chociaż istnieje kilka sposobów konfigurowania i zarządzania tym, obecnie nie ma żadnego
z nich faktycznie samodzielnie dostarcza kompletne i spójne rozwiązanie, wszystkie upadają
brakuje znaku w jakiś znaczący i irytujący sposób. Celem jest tutaj poskładanie
wystarczająco dużo tych hacków, aby faktycznie uzyskać wszystkie funkcje, których chcemy teraz, aż do
natywna obsługa libvirt poprawia się na tyle, że nie jest już potrzebna.

Obecnie dotyczy to maszyn wirtualnych QEMU/KVM zarządzanych przez libvirt.

Co do we chcieć?
Idealne zachowanie tutaj jest dość proste. Biorąc pod uwagę dowolną liczbę BitBabbler
urządzeń, powinniśmy być w stanie przypisać je do maszyny hosta lub do maszyny wirtualnej gościa
na nim działać, a kiedy to zrobimy, powinny zachowywać się w normalny sposób, jakiego oczekuje się od każdego
Urządzenie USB.

- Jeśli są podłączone, gdy maszyna gościa jest uruchomiona, powinny być widoczne
maszyny tak, jak byłyby przez hosta.

- Jeśli są podłączone po uruchomieniu maszyny, należy je do tego podłączyć na gorąco
maszynie, tak jak byłyby na hoście.

- Jeśli zostaną odłączone podczas pracy maszyny, należy je dokładnie usunąć
tak, jak byłyby na gospodarzu.

Czemu nie może we mieć jest?
W tej chwili libvirt daje nam dwa sposoby na przypisanie urządzeń USB z hosta do a
domena gościa.

- Możemy je przypisać według dostawcy USB i identyfikatora produktu. Ale to działa tylko wtedy, gdy tam jest
jest tylko jednym urządzeniem tego typu w hoście. Co jest w większości bezużyteczne
sprawy, na których nam zależy, gdzie gospodarz i każdy z gości prawdopodobnie
mieć przypisane jedno lub więcej własnych urządzeń BitBabbler.

- Możemy je przypisać po adresie logicznym na szynie USB. Ale to nie jest stała
które możemy statycznie skonfigurować dla domeny. Za każdym razem, gdy urządzenie jest podłączone lub
ponownie podłączony, zresetowany lub komputer hosta zostanie ponownie uruchomiony, adres ten prawdopodobnie ulegnie zmianie
ponieważ jest przydzielany dynamicznie, gdy urządzenie jest wyliczane na magistrali.

Istnieje trzeci sposób, ale polega on na ominięciu normalnej konfiguracji libvirt
bezpośrednie wykorzystanie możliwości QEMU do przypisania urządzenia po jego fizycznym adresie na magistrali.
Co jest lepsze, ale nadal nie jest magiczną kulą, ponieważ polega na podłączeniu dokładnie tak samo
urządzeń do dokładnie tych samych portów za każdym razem (i wyliczanie tych portów w
w ten sam sposób przez hosta przy każdym ponownym uruchomieniu, co również nie jest gwarantowane). To też wymusza
nam przeskakiwać przez inne obręcze, ponieważ wtedy potrzebujemy dodatkowych komplikacji, aby sobie z nimi poradzić
uprawnienia dostępu do urządzenia ręcznie poza libvirt, ale nadal w koordynacji
z nim.

Jeszcze większą wadą, która łączy wszystkie te metody, jest to, że wszystkie one polegają
urządzenie jest już podłączone przed uruchomieniem gościa. Jeśli zostanie wstawiony po
gość jest uruchamiany lub usuwany i ponownie podłączany, gdy gość jest uruchomiony, lub jeśli host
magistrala lub koncentrator odbija się powodując ponowne połączenie, wtedy urządzenie nie zostanie (ponownie) podłączone do
gość. Jedynym sposobem, aby to naprawić, jeśli tak się stanie, jest ręczne ponowne podłączenie urządzenia za pomocą
tajemne zaklęcie w XML (które polega na znajomości nowego adresu urządzenia) lub
aby całkowicie wyłączyć i ponownie uruchomić gościa. Nie szczyt przyjazny dla użytkownika
operacja, której tutaj szukamy.

Co mogą we do O Varso Invest jest?
Kilka lat temu do libvirt przesłano łatkę, która umożliwiłaby urządzenie
być określony zarówno za pomocą identyfikatora produktu USB, jak i numeru seryjnego, ale wymagało to pewnych
z powrotem i jak dotąd nie został jeszcze zastosowany w górnym biegu rzeki. Daleko by to zaszło
w kierunku uczynienia tego zarówno łatwym, jak i czystym, pozostawiając nam tylko aspekt hotplug do rozwiązania
z. Zostawimy zrzędliwe uwagi na ten temat jako ćwiczenie dla czytelnika…

Inną alternatywą jest delegowanie znajdowania adresu logicznego urządzenia do wtyczki typu „hotplug”.
menedżer jak udev(7). Jest to atrakcyjne w tym sensie, że możemy wiedzieć, kiedy adres
zmienia się urządzenie i na co się zmienia, ale udev sam w sobie nie jest zbyt przyjazny dla
pomysł dostosowania lokalnego administratora (chociaż jest to możliwe, wydaje się, że robi się
coraz bardziej odradzane) i nadal wymaga zewnętrznego kleju
przetłumaczyć swoje zdarzenia na coś, na czym libvirt może działać, aby skonfigurować gościa
maszyna.

Połączenia bbvirt program zapewnia ten klej i przyjazną dla użytkownika metodę jego przypisania
do których domen gości powinny należeć urządzenia oraz interfejs, który można wywołać ręcznie
lub przez inne zadania kontrolowane przez administratora, aby szybko i łatwo dodawać lub usuwać urządzenia BitBabbler
z dowolnej działającej maszyny-gościa.

Ale ograniczeniem tego podejścia jest to, że nie można łatwo wiedzieć, kiedy jest maszyna-gość
uruchomiony, do którego powinny być dodane urządzenia, które są już podłączone. Teoretycznie my
mógłby dodać je do swojej trwałej definicji domeny, ale ma to swoje własne problemy, ponieważ
możemy dodawać urządzenia tylko według ich efemerycznych adresów logicznych i nie możemy zagwarantować, że my
zostanie ponownie wezwany do usunięcia ich z domeny, gdy ten adres stanie się nieprawidłowy
(na przykład, jeśli host zostanie nagle wyłączony lub w inny sposób nie zostanie całkowicie wyłączony), więc my
może skończyć się gromadzeniem wielu nieaktualnych wpisów w trwałej konfiguracji domeny,
które później można było dopasować do zupełnie innego urządzenia niż to, do którego chcieliśmy dołączyć
To. Co oznacza, że ​​​​dopóki to jakoś nie zostanie naprawione, można bezpiecznie dodawać je do żywego gościa
domeny, aby zawsze były ponownie usuwane, gdy zostanie zatrzymana, bez względu na sposób
skończyło się zatrzymaniem.

Najwyraźniej mamy jeszcze trochę drogi do osiągnięcia naszego ideału.

Co if we hit it w *dwa* młoty?
Wydaje się, że istnieją tylko dwa sposoby, dzięki którym możemy otrzymać powiadomienie o istnieniu maszyny-gościa
rozpoczęło się obecnie. Jeden obejmuje uruchomienie jeszcze jednego procesu demona, co by wystarczyło
niewiele więcej niż tylko siedzenie i czekanie, aż ktoś rozpocznie gościa, aby mógł nam powiedzieć
o tym. Ale wtedy mielibyśmy kolejną rzecz do skonfigurowania, kolejny proces
bieganie i jeszcze więcej problemów z wymyśleniem, jak się upewnić, że nie przegramy wyścigu, kiedy
host jest uruchamiany, między uzyskaniem początkowego zestawu zdarzeń urządzenia, którym jest proces
gotowy i aktywny, a wszyscy goście, którzy będą automatycznie uruchamiani podczas rozruchu, faktycznie się uruchamiają.

Innym sposobem jest użycie haka libvirt. Co z kolei ma problem z tym, że tak naprawdę nie
pozwalając nam uruchamiać z niego dowolne funkcje libvirt, co musimy zrobić, aby dołączyć
urządzenie do hosta. I których nie możemy zagwarantować, że możemy po prostu zainstalować domyślnie,
ponieważ w systemie może być tylko jeden taki hak, który może mieć już lokalny administrator
używać...

Istnieje trzeci sposób, ale wymagałoby to od lokalnego administratora uruchomienia wszystkich gości
maszyny poprzez nasze własne opakowanie, zamiast poprzez jakikolwiek mechanizm, który już znają
I użyć. Który nie skaluje się między innymi do obsługi innych urządzeń USB w tej samej sytuacji
na wiele sposobów, które byłyby okropnym rozwiązaniem do narzucenia ludziom.

Ale jest luka, którą możemy wykorzystać. Możemy użyć haka libvirt qemu, aby wywołać a
zmień wydarzenie dla udev, które z kolei mogą wywołać bbvirt w taki sam sposób, jak by to było
się zdarzyć, jeśli urządzenie zostało naprawdę podłączone na gorąco, co daje nam dodatkową warstwę pośredniości
musimy być w stanie bezpiecznie zrobić to z haka. Rube Goldberg byłby dumny i
niektóre elementy mogą wymagać ręcznego montażu, ale mając to wszystko na miejscu, możemy to mieć
coś przypominającego normalną funkcjonalność USB w maszynach-gościach.

To nie jest ładne, ale będzie działać z tym, z czym musimy pracować.

Ok, właśnie powiedzieć me gdzie do hit to.
Aby połączyć to razem, musisz zapewnić wszystkie następujące elementy:

- THE udev(7) zainstalowane są reguły z pakietu bit-babbler. Jeśli to zainstalowałeś
z pakietów Debiana, które powinny być już wykonane. Jeśli tego nie zrobiłeś, będziesz musiał
zainstaluj reguły, które znajdują się w debian/bit-babbler.udev z pakietu źródłowego do a
odpowiednie miejsce w systemie (prawdopodobnie /etc/udev/rules.d).

- THE bbvirt(1) skrypt jest zainstalowany w miejscu, w którym udev reguły go znajdą. Jeśli ty
nie zainstalowałem tego z pakietów Debiana i nie ma go / usr / bin, wtedy będziesz potrzebować
poprawiać udev zasady pasujące.

- Urządzenia, których chcesz używać w maszynach-gościach, oraz maszyny, w których chcesz ich używać,
są określone w bbvirt plik konfiguracyjny. Domyślna lokalizacja to
/etc/bit-babbler/vm.conf. Jeśli chcesz użyć innego pliku, musisz go przekazać
lokalizacja z --konfig opcja w udev Rules i zaktualizuj skrypt przechwytujący, użyj tego
plik też. Szczegóły dotyczące tego, co można umieścić w tym pliku, opisano w pliku
KONFIGURACJA OPCJE sekcja poniżej.

- Plik przechwytujący libvirt jest zainstalowany. Jeśli wszystko powyższe zostanie wykonane, urządzenia będą
dodawane do uruchomionych maszyn-gości, jeśli zostaną podłączone, gdy gość jest uruchomiony.
Ten ostatni krok zapewnia, że ​​urządzenia, które są już podłączone, zostaną dodane do nowo
rozpoczęci goście też (co obejmuje gości, którzy są uruchamiani automatycznie, gdy host
buty maszynowe).

Dopóki nie będzie jakiegoś bezpiecznego sposobu, w jaki możemy to zainstalować bez konfliktów lub nadpisywania
istniejącego haka, każdy będzie musiał wykonać ten krok ręcznie. Jeśli zainstalowałeś
pakiety Debiana, może to być przykładowy skrypt przechwytujący, który udostępniliśmy
Znaleziono w /usr/share/doc/bit-babbler/examples/qemu-hook. Jeśli nie, można go znaleźć
in libvirt/qemu-hook pakietu źródłowego.

Będziesz musiał zainstalować ten plik jako /etc/libvirt/hooks/qemulub połącz jego zawartość z
istnięjące qemu plik tam, jeśli masz już ten zestaw haków. Jeśli ten plik nie
istnieje, konieczne będzie ponowne uruchomienie libvirtd(8), aby zaczął go używać.

To powinno obejmować całą potrzebną automatyzację, ale możesz także dołączać i odłączać urządzenia
również ręcznie w dowolnym momencie. Szczegóły, jak to zrobić, zostaną opisane poniżej
Sekcja. W przeciwnym razie, po wykonaniu wszystkich powyższych czynności, nie ma innego powodu, aby potrzebować inwokacji
bbvirt bezpośrednio.

OPCJE


Istnieją dwa podstawowe tryby pracy dla bbvirt które są wybierane przez inicjał
opcja akcji. Jeśli akcja do wykonania jest dołączać or odłącz wtedy tylko jedno urządzenie
będzie działać, a które urządzenie powinno być, musi być wyraźnie określone, nawet jeśli
w danym momencie na hoście znajduje się tylko jedno urządzenie. Podczas wywoływania bbvirt ręcznie,
dotychczasowy urządzenie można określić za pomocą numeru seryjnego, adresu logicznego na magistrali (w formacie
Nasz formularz Busnum:devnum, podany jako dziesiętne liczby całkowite) lub jego fizyczny adres na magistrali (w formacie
Nasz formularz Busnum-Port[.Port ...]).

Jeśli akcja do wykonania jest dołączyć-wszystko or odłącz-wszystko, to urządzenie(a) do działania to
wybrany przez domena zamiast tego stowarzyszenie. Jeśli domena jest wyraźnie określony, to wszystko
zostaną uruchomione urządzenia, które są przypisane do tej domeny gościa w pliku konfiguracyjnym
w taki sam sposób, jak gdyby bbvirt został przywołany dla każdego z nich indywidualnie z
dołączać or odłącz działanie. Jeśli nie domena jest zapewniony, a następnie wszyscy skonfigurowani goście
domeny będą działać w ten sposób.

Dostępne są następujące opcje dodatkowe:

-DO, --konfig
Określ alternatywny plik konfiguracyjny, z którego mają zostać zaimportowane przypisania urządzeń.
Jeśli ścieżka do pliku nie zostanie podana jawnie, będzie on poszukiwany w
dotychczasowy /etc/bit-babbler katalog (z .konf przyrostek).

-C, --połącz=URI
Określ Virsh(1) połączenie URI używać. Spowoduje to zastąpienie a DOMENA_URI zestaw
dla domeny w pliku konfiguracyjnym. Jeśli nie jest to ustawione przy użyciu jednego z nich
metody wtedy Virsh domyślne dla uruchomionego użytkownika bbvirt będzie użyty.

-D, --domena=Nazwa
Określ domenę libvirt, na której ma działać. Można to wykorzystać do obejścia urządzenia
alokacja z pliku konfiguracyjnego when bbvirt jest wywoływany ręcznie lub do działania
na urządzeniu lub domenie, która nie jest aktualnie określona w pliku konfiguracyjnym.

-B, --numer_busu=num
Określ numer magistrali USB, do której podłączone jest urządzenie. Ta opcja jest w większości
używany do unikania bbvirt konieczność sprawdzenia tego, gdy jest już znane (na przykład kiedy
nazywa się od a udev reguła). Zwykle nie ma powodu, aby przekazać to if
inwokacja bbvirt ręcznie, ponieważ możesz po prostu określić urządzenie za pomocą logicznego lub
zamiast tego adres fizyczny.

-D, --devnum=num
Określ numer urządzenia USB, do którego urządzenie jest aktualnie przypisane. Razem z
numer magistrali, tworzy adres logiczny urządzenia. Ta opcja jest
najczęściej używany do unikania bbvirt konieczność sprawdzenia tego, gdy jest już znane (np
jak wtedy, gdy jest wywoływany z a udev reguła). Zwykle nie ma powodu, by zdać
to w przypadku wywołania bbvirt ręcznie, ponieważ możesz po prostu określić urządzenie na podstawie jego
zamiast tego adres logiczny.

-N, --próba
Nie podłączaj ani nie odłączaj żadnych urządzeń, po prostu pokaż, co zostałoby zrobione, gdyby to było
bieg na żywo. Ta opcja oznacza minimalny poziom --gadatliwy, ale gadatliwość może
zostać dodatkowo zwiększona poprzez wyraźne przekazanie tej opcji.

-v, --gadatliwy
Rób więcej hałasu o to, co naprawdę się dzieje. Może być przekazywany wielokrotnie do
jeszcze bardziej zwiększyć gadatliwość.

-?, --help
Pokaż krótkie podsumowanie dostępnych opcji.

KONFIGURACJA OPCJE


Połączenia bbvirt plik konfiguracyjny zawiera przypisania zmiennych przy użyciu bash(1) skorupa
składnia. Jest pozyskiwany jako fragment powłoki, więc w zasadzie można skonstruować plik
konfiguracji dla każdej domeny dynamicznie, ale najczęściej jest to proste przypisanie statyczne
urządzeń do domen wystarczy. Jeśli zdecydujesz się uruchomić w nim kod, powinieneś być bardzo
defensywne w stosunku do przestrzeni nazw wszelkich innych używanych zmiennych lub jakichkolwiek innych skutków ubocznych
może spowodować. Można w nim skonfigurować dowolną liczbę domen gości.

Dla każdej domeny gościa dwie zmienne kontrolują zachowanie bbvirt:

DOMENA_URI_domena=URI
Ta zmienna jest opcjonalna i ustawia Virsh(1) połączenie URI używać kiedy
dołączanie lub odłączanie urządzeń od podanych domena, Jeśli --łączyć Jest opcja
wyraźnie przekazany do bbvirt zastąpi to, co jest tutaj ustawione. Jeśli połączenie
URI nie jest ustawiony przy użyciu żadnej z tych metod, wówczas Virsh domyślne dla użytkownika
bieganie bbvirt zostanie użyty (który normalnie byłby rootem, gdyby został uruchomiony z udev).

DOMENA_RNG_domena=( urządzenie seryjny z naszej ... )
Ta zmienna jest wymagana, jeśli jest automatyczne przekazywanie urządzeń do domeny
pożądany. Jest to tablica bash, wypełniona oddzieloną spacjami listą wszystkich elementów
numery seryjne urządzeń, które chcesz przypisać domena. To nie jest błąd dla
urządzenia, które nie są aktualnie podłączone do sieci. Ważne
upewnij się, że urządzenia są przypisane tylko do jednego domena chociaż i te urządzenia
przypisane do domen gościa nie będą używane przez a rozstawiony(1) instancja działająca na
gospodarz (co oznacza rozstawiony konfiguracja musi zostać przekazana jawna lista
urządzenia, z których może korzystać).

W tym miejscu należy zawsze używać numeru seryjnego urządzenia. Nie można określić urządzenia według
jego logiczny lub fizyczny adres na magistrali (tak jak w większości innych miejsc, gdzie
bierzemy identyfikator urządzenia).

Korzystaj z bbvirt online, korzystając z usług onworks.net


Darmowe serwery i stacje robocze

Pobierz aplikacje Windows i Linux

  • 1
    wxPython
    wxPython
    Zestaw modułów rozszerzeń Pythona, który
    zawiń międzyplatformowe klasy GUI z
    wxWidgets. Odbiorcy: Deweloperzy. Użytkownik
    interfejs: X Window System (X11), Win32...
    Pobierz wxPython
  • 2
    menedżer plików pakietów
    menedżer plików pakietów
    To jest menedżer plików pakietu Total War
    projekt, począwszy od wersji 1.7. A
    krótkie wprowadzenie do Warscape
    modowanie: ...
    Pobierz menedżera plików pack
  • 3
    IPerf2
    IPerf2
    Narzędzie do pomiaru ruchu sieciowego
    Wydajność TCP i UDP z metrykami
    zarówno pod względem przepustowości, jak i opóźnień. The
    cele obejmują utrzymanie aktywności
    iperf dorsz...
    Pobierz IPerf2
  • 4
    fre:ac - darmowy konwerter audio
    fre:ac - darmowy konwerter audio
    fre:ac to darmowy konwerter audio i CD
    ripper dla różnych formatów i koderów.
    Posiada MP3, MP4/M4A, WMA, Ogg
    Vorbis, FLAC, AAC i Bonk
    Pomoc, ...
    Pobierz fre:ac - darmowy konwerter audio
  • 5
    Biblioteki Matplotu
    Biblioteki Matplotu
    Matplotlib to wszechstronna biblioteka
    do tworzenia statycznych, animowanych i
    interaktywne wizualizacje w Pythonie.
    Matplotlib sprawia, że ​​proste rzeczy stają się łatwe i
    ciężka sprawa...
    Pobierz Matplotlib
  • 6
    Botman
    Botman
    Napisz logikę swojego chatbota raz i
    podłącz go do jednego z dostępnych
    usługi przesyłania wiadomości, w tym Amazon
    Alexa, Facebook Messenger, Slack,
    Telegram, a nawet ty...
    Pobierz BotMana
  • więcej »

Komendy systemu Linux

Ad